Maven实操(1) 之 Maven常见jar包冲突问题

Maven常见jar包冲突问题

这个问题不是很大,但是一旦报错,很难找出原因,所以在此总结一下。

主要是jsp-api:2.1.3-b06.jar这个jar包,他的依赖坐标如下

<dependency>

    <groupId>javax.servlet.jsp</groupId>

    <artifactId>jsp-api</artifactId>

    <version>2.1.3-b06</version>

    <scope>compile</scope>

</dependency>

上边的引用的是jsp-api:2.1.3-b06.jar,这个包还依赖着javax.servlet:3.0-b70.jar和el-api:2.1.2-b05.jar两个jar包。

jsp-api:2.1.3-b06.jar的依赖

因为他上边定义依赖范围是compile,所以jsp-api:2.1.3-b06.jar以及他所依赖的两个jar包,在运行的时候就会被拿到部署的目录里边。

那Maven本身就集成了tomcat插件,在tomcat中本身也有这三个jar包。所以在部署的时候,这三个jar包就重复了,造成了jar包冲突。

因为依赖范围是compile,他在编译,测试,部署运行的时候都参与,所以会造成jar包的冲突,那我们就把他的依赖范围改成provided,就可以了,只在编译和运行的时候参与,部署运行的时候不参与,就不会造成jar包的冲突问题了。

jar包scope依赖范围
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第1章 Maven 介绍 什么是 Maven 什么是 Maven Maven 的正确发音是[ˈmevən],而不是...
    强某某阅读 7,022评论 0 25
  • Jar包冲突是老生常谈的问题,几乎每一个Java程序猿都不可避免地遇到过,并且也都能想到通常的原因一般是同一个Ja...
    sherlockyb阅读 37,607评论 1 65
  • 在学习Spring框架的过程中,要导入很多jar包,不但非常麻烦,初学时还很容易忘记要用哪些jar包,尤其是有依赖...
    Jason_M_Ho阅读 10,176评论 0 1
  • maven 一、maven基础 1. maven的核心 依赖管理:对jar包管理的过程 项目构建:项目在编码完成后...
    Ernest_Chou阅读 5,759评论 1 2
  • 这可能根本算不上一个故事,而我也只是想平平静静地把它记录下来。我觉得对于过往的碎片,每个人都存在着记忆,有些记忆碎...
    一枚文案阅读 3,134评论 0 7