有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java禁用Maven依赖项中介

由于我不相信Maven会在依赖项中介中为我选择“最佳”版本,如果pom中没有明确修复版本冲突(通常使用dependencyManagement),我希望构建失败

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

有没有其他方法可以阻止Maven应用“最近依赖项获胜规则”,但让pom的所有者决定使用哪个版本


共 (2) 个答案

  1. # 1 楼答案

    您可以通过使用dependency version ranges明确定义Maven应该使用哪个版本

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

    例如:

    <version>[4.2]</version>
    

    这意味着:只使用4.2版,而不使用其他版本

    或者:

    <version>[4.2,)</version>
    

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

    或者:

    <version>(,4.2]</version>
    

    意思是:使用下面的版本,或者正好是4.2

  2. # 2 楼答案

    如果违反了^{},可以使用Maven Enforcer Plugin并使生成失败。试一试,看看它是否符合你的要求

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