我在父pom中有一个dependencyManagement部分
<dependencyManagement>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.1</version>
</dependency>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
拥有它的孩子pom
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.0</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
我试图使用enforcer插件来防止这种覆盖在poms中,允许这些仅在父设置中设置,但是无法设置.我希望这会使构建失败.这可能,使用该插件或其他方式?
有DependencyCovergence,它强制所有版本都是相同的,但这太严格了,因为我不想控制所有传递依赖 - 只是明确定义的那些.
如果我可以防止在子pom中引入任何新的依赖关系,我会很高兴 - 所有定义的内容应该在父pom中定义,然后在子代中提到,如果需要的话.
FrV*_*aBe 10
您可以在父pom中添加依赖项: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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9267 次 |
| 最近记录: |