java禁用Maven依赖项中介
由于我不相信Maven会在依赖项中介中为我选择“最佳”版本,如果pom中没有明确修复版本冲突(通常使用dependencyManagement),我希望构建失败
enforcer插件的dependencyConvergence规则似乎就是我想要的,但不幸的是,它不能处理*-exludes(https://issues.apache.org/jira/browse/MENFORCER-195),所以我不能真正使用它
有没有其他方法可以阻止Maven应用“最近依赖项获胜规则”,但让pom的所有者决定使用哪个版本
# 1 楼答案
您可以通过使用dependency version ranges明确定义Maven应该使用哪个版本
基本上,你只需要用圆括号(专有量词)或方括号(包含量词)来包围你的版本
例如:
这意味着:只使用4.2版,而不使用其他版本
或者:
这意味着:使用4.2或更高版本
或者:
意思是:使用下面的版本,或者正好是4.2
# 2 楼答案
如果违反了^{} ,可以使用Maven Enforcer Plugin并使生成失败。试一试,看看它是否符合你的要求
更新:抱歉,我刚刚注意到您尝试了排除,但遇到了问题。您是否尝试过使用链接票证的pull请求构建插件,并查看它是否为您解决了问题