У меня есть родительский Pom.xml (BOM), который содержит тег DependencyManagement со списком зависимостей, а также некоторые исправления безопасности для транзитивных зависимостей, которые вносят эти зависимости. Что-то вроде:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>x</groupId>
<artifactId>y/artifactId>
<version>z</version>
</dependency>
<dependency>
<groupId>a</groupId>
<artifactId>b/artifactId>
<version>c</version>
</dependency>
</dependencies>
</dependencyManagement>
I want the Child projects which use this parent pom to not to use a:b-c.jar artefact in their pom as a dependency.
For this, I thought of using maven-enforcer-plugin with enforce-banned-dependencies like below:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M2</version>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>a:b</exclude>
</excludes>
<includes>
<!--only 1.0 of badArtifact is allowed-->
</includes>
</bannedDependencies>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Но это не работает. И дочерние poms проекта все еще могут ссылаться на a: b в своем проекте (без указания версии c, конечно).
Может кто-нибудь сказать мне, возможно ли добиться того, что я пытаюсь сделать, используя или не используя этот плагин, или любым другим способом?