禁用Maven依赖项中介

JF *_*ier 14 java maven

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

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

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

Joa*_*hde 1

您可以使用依赖项版本范围明确定义 Maven 应使用的版本。

基本上,您只需要用圆括号(独占量词)或方括号(包含量词)将您的版本括起来。

例如:

<version>[4.2]</version>
Run Code Online (Sandbox Code Playgroud)

意味着:仅使用 4.2 版本,而不使用其他版本。

或者:

<version>[4.2,)</version>
Run Code Online (Sandbox Code Playgroud)

意思是:使用 4.2 或更高版本。

或者:

<version>(,4.2]</version>
Run Code Online (Sandbox Code Playgroud)

意思是:使用低于或正好 4.2 的版本。