Gibt es eine Möglichkeit, um auszuschließen, ein Maven-dependency weltweit?
Ich versuche zu finden, eine "generische" Weise, ohne eine transitive Abhängigkeit einbezogen werden, ohne dass ausgeschlossen wird, werden alle Abhängigkeiten, die davon abhängen. Zum Beispiel, wenn ich ausschließen wollen, slf4j, ich Tue das folgende:
<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 teilweise zu bereinigen, die pom-Datei, teilweise Probleme zu vermeiden, die in Zukunft mit Menschen hinzufügen von Abhängigkeiten, die davon abhängen, ausgeschlossen Abhängigkeit — und zu vergessen, auszuschließen.
Gibt es eine Möglichkeit?
Löst nicht das problem, aber maven-enforcer-plugin gebannt Abhängigkeiten, dass wird scheitern, die bauen, wenn unerwünschte Abhängigkeiten einschleichen. Haben Sie immer noch manuell ausgeschlossen werden, wenn :-/
Eine alternative Antwort gibt es hier: stackoverflow.com/a/39979760/363573
Eine alternative Antwort gibt es hier: stackoverflow.com/a/39979760/363573
InformationsquelleAutor Sébastien Le Callonnec | 2011-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert diese Hilfe? http://jlorenzen.blogspot.com/2009/06/maven-global-excludes.html
"Vorausgesetzt, ausschließen will ich das avalon-framework von mein KRIEG, ich möchte hinzufügen, die folgenden zu meinen Projekten POM mit einem Rahmen versehen. Dies funktioniert über alle transitiven Abhängigkeiten und ermöglicht es Ihnen, geben Sie es einmal.
Funktioniert dies sogar, wenn die Angabe in der parent-POM, die verhindern, dass Projekte aus, die zu erklären, dass diese in allen child-POMs."
Was ist mit den
runtime
Umfang stattprovided
- Bereich?Was passiert, wenn avalon-framework 4.1.3+ enthalten ist, an anderer Stelle in das Projekt? Siehe Antwort hier: stackoverflow.com/a/39979760/363573
Ich glaube nicht, verwenden Maven-mehr, also ich bin nicht in der Lage zu testen, die anderen Antworten, aber ich würde ermutigen Leute, um Sie zu betrachten, in-Fall es gibt einen, der nicht in einer teilweisen hack, als pro @TuukkaMustonen
InformationsquelleAutor Joffer
Erstellte ich ein leeres Glas und erstellt diese Abhängigkeit:
Es ist nicht perfekt, denn von nun an haben Sie ein leeres Glas in Ihrem kompilieren/testen Weg. Aber das ist nur Kosmetik.
InformationsquelleAutor
Erweitern dnault Kommentar:
Kann man die Maven Enforcer plugin Gebannt Abhängigkeiten Regel, dass Abhängigkeiten ausgeschlossen sind. Hat man noch, um Sie auszuschließen manuell, aber der build schlägt fehl, wenn jemand fügt die Abhängigkeit anderswo durch Fehler.
Außerdem gibt es einen offenen feature request: MNG-1977 Globalen Abhängigkeit AUSSCHLÜSSE
InformationsquelleAutor Arend v. Reinersdorff
Als Erinnerung, hier ist die Antwort von Maven-offizielle Dokumentation:
Will man ein build robuster, version Bereich verwendet werden kann. Dies würde sicherstellen, dass keine neuere version der Abhängigkeit kann stören das Projekt.
Alle slf4j-api-version >= 1.4.2 wird als angeboten (zur Verfügung gestellt) zur Laufzeit, die entweder von einem konfigurierten classpath oder einen container.
Referenzen
InformationsquelleAutor Stephan