Ich versuche eine "generische" Möglichkeit zu finden, eine transitive Abhängigkeit auszuschließen, ohne sie von allen Abhängigkeiten, die davon abhängen, auszuschließen. Zum Beispiel, wenn ich slf4j ausschließen will, muss ich Sie wie folgt vor:Gibt es eine Möglichkeit, eine Maven-Abhängigkeit global auszuschließen?
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jmx</artifactId>
<version>3.3.2.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
<type>jar</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
Dies ist zum Teil die pom-Datei zu bereinigen, teilweise zu vermeiden, Probleme in der Zukunft mit Menschen Abhängigkeiten hinzufügen, die auf dieser ausgeschlossen Abhängigkeit abhängen - und vergessen, es auszuschließen.
Gibt es einen Weg?
tritt das Problem nicht lösen, aber Maven-Enforcer-Plugin hat eine [banned Abhängigkeiten verfügen] (https://maven.apache.org/ enforcer/enforcer-rules/bannedDependencies.html), die den Build scheitern lassen, wenn sich unerwünschte Abhängigkeiten einschleichen. Sie müssen sie dennoch manuell ausschließen: -/ – dnault
Eine alternative Antwort finden Sie hier: http://stackoverflow.com/a/39979760/363573 – Stephan