Maven 重复依赖检测 (Dependency Convergence), 包冲突解决

本文介绍了如何使用 Maven Enforcer Plugin 防止项目中依赖版本冲突的问题。通过配置插件,确保项目依赖的库版本一致,避免因版本不兼容导致的构建失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=medium]
方法一
maven命令方式
详情参考:
[url]https://maven.apache.org/enforcer/enforcer-rules/dependencyConvergence.html[/url]

This rule requires that dependency version numbers converge. If a project has two dependencies, A and B, both depending on the same artifact, C, this rule will fail the build if A depends on a different version of C then the version of C depended on by B.

简单的说就是,如果你的project依赖两个第三方jar包,分别称作A和B,而A又依赖spring2.5, B却依赖spring3.0, 那么如果你配置了这个规则,maven build就会失败并且报错,让你自己先解决这个包冲突.

我个人认为这个挺有用的,当你在本地Tomcat跑起来没问题,发布到服务器WebSphere却挂了时,最后调试1天才解决包冲突问题,是很郁闷的.[/size]

加入下面的插件到pom.xml即可启用该功能

<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<DependencyConvergence/>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>


[size=medium]
方法二
可视化方式,m2Eclipse插件提供的Maven Pom Editor功能
Eclipse Marketplace搜索Maven Integration for Eclipse, install后即可使用.

双击pom.xml后在Dependency Hierarchy面板里面可以查看有冲突的jar包.
优先推荐可视化方式.[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值