我在父 pom 中有一个 dependencyManagement 部分,例如
<dependencyManagement>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.1</version>
</dependency>
</dependencyManagement>
和一个孩子 pom,拥有它
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0</version>
</dependency>
</dependencies>
我尝试使用enforcer plugin防止在子 pom 中发生这种覆盖,只允许在 parent 中设置这些,但无法做到。我希望这个构建失败。用那个插件或其他方式有可能吗?
有DependencyCovergence,它强制所有版本都相同,但这太严格了,因为我不想控制所有传递依赖项 - 只是明确定义的那些。
如果我可以完全阻止在子 pom 中引入任何新的依赖项,我会很高兴 - 定义的所有内容都应该在父 pom 中定义,然后在需要时在子 pom 中提及。