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.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage