Was ich versuche zur Zeit ist:Wie kann ich nur eine transitive Abhängigkeit in meinem Maven-Projekt verbieten?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce-banned-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<banTransitiveDependencies>
<excludes>
<exclude>*:*:*</exclude>
</excludes>
<includes>
<include>commons-lang:commons-lang:2.4</include>
</includes>
</banTransitiveDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
Meine Absicht mit dem, was ich versuche, oben ist:
Ausschließen aller transitiven Abhängigkeiten zu verbieten, außer commons-lang: 2,4
Wenn Ich versuche
mvn verify
werde ich ge t
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-banned-dependencies) @ ebtam-core ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
was nicht gut ist. Weil ich weiß, dass ich die folgende Abhängigkeit in meinem Projekt habe:
[INFO] +- org.apache.velocity:velocity:jar:1.6.2:compile
[INFO] | +- commons-lang:commons-lang:jar:2.4:compile
Was mache ich falsch?
Ich kann nicht sicher sagen, (weshalb dieser Kommentar ist, keine Antwort), aber ist es nicht umgekehrt? Sie möchten commons-lang von der ban-Regel ausschließen, aber erzwingen, dass alles andere verboten ist. So ist Ihr *: *: * enthalten, und commons-lang: commons-lang: 2.4 ist ausgeschlossen. So habe ich es verstanden von https://maven.apache.org/enforcer/enforcer-rules/banTransitiveDependencies.html – Creperum
@Creperum Nein, ich möchte alles ausschließen, einschließlich commons-lang. –
Wenn Sie die commons-lang-Abhängigkeit verbieten möchten, müssen Sie nur das Include definieren, wie Sie es bereits getan haben, aber Sie müssen die Excludes entfernen. – khmarbaise