Maven中jar版本冲突问题的解决

Posted HelloWorld1815

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven中jar版本冲突问题的解决相关的知识,希望对你有一定的参考价值。

如:在父工程中引入了struts-core,hibernate-core,发现jar包是有冲突的。javassist存在版本上冲突。

 

方法一:

<dependency>
          <groupId>org.apache.struts</groupId>
          <artifactId>struts2-core</artifactId>
          <version>2.3.24</version>
          <!-- 锁定这个javassist -->
          <exclusions>
              <exclusion>
                  <artifactId>javassist</artifactId>
                  <groupId>javassist</groupId>
              </exclusion>
          </exclusions>
      </dependency>

ok后,pom.xml文件中那个dependency里会多出一个exclusions标签来锁定想要锁定的包。

 

方法二:在pom.xml文件中的dependencyManagement标签中直接设置所要锁定的jar包。

<!-- 版本锁定管理 -->
  <dependencyManagement>
      <dependencies>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-beans</artifactId>
              <version>4.2.4.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
              <version>4.2.4.RELEASE</version>
          </dependency>
      </dependencies>
  </dependencyManagement>

要调用锁定的那些jar包的话,在dependencyManagement之外的dependencies标签里面调用就可以了。

<!-- 使用已锁定的版本(不用注明版本号) -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
      </dependency>

 

方法三:在pom.xml文件中的properties标签中注明版本号。

  <!-- 版本的锁定 -->
  <properties>
      <spring.version>4.2.4.RELEASE</spring.version>
      <struts.version>2.3.24</struts.version>
      <hibernate.version>5.0.7.Final</hibernate.version>
      <mysql.version>5.1.6</mysql.version>
      <log4j.version>1.2.12</log4j.version>
  </properties>

在引入jar包时候声明成已注明的版本。

      <!-- 使用已锁定的版本 -->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>${spring.version}</version>
      </dependency>

 

以上是关于Maven中jar版本冲突问题的解决的主要内容,如果未能解决你的问题,请参考以下文章

一点解决版本冲突的应急思路怎样在所有jar包文件中搜索冲突的方法?

spring maven项目解决依赖jar包版本冲突方案

Maven怎么处理引用的jar版本冲突

Maven怎么处理引用的jar版本冲突

idea升级maven工程jar包版本和解决jar包冲突

如何配置maven pom文件来解决jar包冲突