禁用Maven依赖中介

时间:2017-03-03 13:06:44

标签: java maven

因为我不相信Maven会选择最好的"在依赖中介中我的版本,如果存在未在pom中明确修复的版本冲突(通常通过使用dependencyManagement),我想使构建失败。

enforcer插件的dependencyConvergence规则似乎是我想要的,但不幸的是,它无法处理* -exludes(https://issues.apache.org/jira/browse/MENFORCER-195),所以我无法真正使用它。

还有其他方法可以阻止Maven应用"最近的依赖关系获胜规则"但是让pom的所有者决定使用哪个版本?

2 个答案:

答案 0 :(得分:3)

如果违反Maven Enforcer Plugin,您可以使用dependencyConvergence并失败。试一试,看看它是否符合您的要求。

更新抱歉,我刚注意到您尝试过并且排除了问题。您是否尝试使用链接票证的拉取请求构建插件,看看它是否为您解决了问题?

答案 1 :(得分:1)

您可以使用dependency version ranges明确定义Maven应使用的版本。

基本上你只需用圆括号(独有量词)或方括号(包含量词)来包围你的版本。

例如:

<version>[4.2]</version>

意味着:完全使用版本4.2而不是别的。

或者:

<version>[4.2,)</version>

意味着:使用4.2或更高版本。

或者:

<version>(,4.2]</version>

意味着:使用低于或低于4.2的版本。