Gradle: Transitive Abhängigkeit durch Versionsklassifikator überschreiben
Eine der in meinem Projekt deklarierten Abhängigkeiten ist transitiv von @ abhäng'com.google.guava:guava:15.0'
. Meine auf WAS / Weblogic bereitgestellte Anwendung funktioniert jedoch aufgrund eines CDI-Problems, das in @ behoben wurde, nich'com.google.guava:guava:15.0:cdi1.0'
. (gleiche Version, aber mit Klassifikator) Ich muss gradle anweisen, dieses Gefäß beim Erstellen und Verpacken zu verwenden. Ich versuche herauszufinden, wie wir diese transitiven Abhängigkeiten mit einem jar-spezifischen Versionsklassifikator umgehen können.
Versuchte die folgenden Ansätze:
Die Abhängigkeit wurde explizit hinzugefügt:compile 'com.google.guava:guava:15.0:cdi1.0'
. Aber beide Gläser wurden in die resultierende WAR aufgenommen.Die Abhängigkeit wurde explizit hinzugefügt und eine Auflösungsstrategie definiert:
configurations.all {
resolutionStrategy {
force 'com.google.guava:guava:15.0:cdi1.0'
}
}
Auch das hat nicht funktioniert.
Definierte eine Auflösungsstrategie zum Überprüfen und Ändern der Version.
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group + ":" + details.requested.name == 'com.google.guava:guava') {
details.useVersion "15.0:cdi1.0"
//details.useTarget "com.google.guava:guava:15.0:cdi1.0"
}
}
}
Auch das hat nicht funktioniert.
Notieren Sie Ihre Vorschläge, wie dieses Problem behoben werden kann.