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版本冲突问题的解决的主要内容,如果未能解决你的问题,请参考以下文章