gpt4 book ai didi

maven - 在Maven子pom中防止覆盖依赖版本

转载 作者:行者123 更新时间:2023-12-04 11:09:31 25 4
gpt4 key购买 nike

我在父pom中有一个dependencyManagement部分,例如

<dependencyManagement>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.1</version>
</dependency>
</dependencyManagement>

和一个 child pom,有它
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0</version>
</dependency>
</dependencies>

我尝试使用 enforcer plugin防止这种在子pom中的重载,只允许将它们设置在父pom中,但是还没有做到。我想让构建失败。使用该插件或其他方法是否可行?

DependencyCovergence,它强制所有版本都相同,但这太严格了,因为我不想控制所有的传递性依赖项-只是显式定义的依赖项。

如果我能防止在子pom中引入任何新的依赖关系,我会很高兴-定义的所有内容都应该真正在父pom中定义,然后在子pom中根据需要进行提及。

最佳答案

您可以在父pom中添加dependency:analyze-dep-mgt执行并将其配置为在版本不匹配时失败:

  <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>analyze</id>
<phase>package</phase>
<goals>
<goal>analyze-dep-mgt</goal>
</goals>
<configuration>
<failBuild>true</failBuild>
<ignoreDirect>false</ignoreDirect>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

关于maven - 在Maven子pom中防止覆盖依赖版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14521176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com