Maven 依赖 jar 包时版本冲突的解决
共有四种解决方式:
1、第一声明优先原则:
在 pom.xml 配置文件中,如果有两个名称相同版本不同的依赖声明,那么先写的会生效。
所以,先声明自己要用的版本的 jar 包即可。
2、路径近者优先:
直接依赖优先于传递依赖,如果传递依赖的 jar 包版本冲突了,那么可以自己声明一个指定版本的依赖 jar,即可解决冲突。
3、排出原则:
传递依赖冲突时,可以在不需要的 jar 的传递依赖中声明排除,从而解决冲突。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.24</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>
4、版本锁定原则(最常使用)
在配置文件 pom.xml 中先声明要使用哪个版本的相应 jar 包,声明后其他版本的 jar 包一律不依赖。解决了依赖冲突。
<properties>
<spring.version>4.2.4.RELEASE</spring.version>
<hibernate.version>5.0.7.Final</hibernate.version>
<struts.version>2.3.24</struts.version>
</properties>
<!-- 锁定版本,struts 2-2.3.24、spring 4.2.4、hibernate 5.0.7 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论