Transitive Abhängigkeiten mit Gradle ausschließen
Wenn Sie in Gradle das Anwendungs-Plugin zum Generieren einer JAR-Datei verwenden, können transitive Abhängigkeiten auftreten Vielleicht möchten Sie es ausschließen. Um dies zu erreichen, kann die Ausschlussmethode verwendet werden.
Standardverhalten von Ausschließen
Zunächst wurde versucht, alle Instanzen von org.slf4j:slf4j- auszuschließen. log4j12 mithilfe des folgenden Codes:
configurations { runtime.exclude group: "org.slf4j", name: "slf4j-log4j12" }
Dies führte jedoch zum Ausschluss aller org.slf4j-Artefakte, einschließlich slf4j-api.
Customizing die Ausschlüsse
Um den Ausschluss zu verfeinern, können die Gruppen- und Moduleigenschaften verwendet werden:
configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
Dieser Ansatz schließt erfolgreich nur org.slf4j:slf4j-log4j12 aus, ohne andere slf4j zu beeinträchtigen Abhängigkeiten.
Aus einer einzelnen Abhängigkeit ausschließen
Wenn der Ausschluss für eine bestimmte Abhängigkeit gewünscht wird, kann die folgende Syntax verwendet werden:
dependencies { compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { exclude group: "org.slf4j", module: "slf4j-log4j12" } }
Einschränkungen der Ausschlussmethode
Es ist wichtig zu beachten, dass in Ausschlüssen zwar beliebige Eigenschaften angegeben werden können, dies jedoch beim Ausschluss von einzelnen Abhängigkeiten nicht zulässig ist. Beispielsweise schlägt der folgende Code fehl:
dependencies { compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { exclude group: "org.slf4j", name: "slf4j-log4j12" } }
mit der folgenden Fehlermeldung:
No such property: name for class: org.gradle.api.internal.artifacts.DefaultExcludeRule
Gradle-Module verstehen
In Gradle , die Moduleigenschaft entspricht der Maven-Artefakt-ID. Um das Modul eines bestimmten Maven-Artefakts zu bestimmen, überprüfen Sie daher dessen Artefakt-ID. Beispielsweise hätte das Maven-Artefakt org.slf4j:slf4j-log4j12 ein Gradle-Modul von slf4j-log4j12.
Das obige ist der detaillierte Inhalt vonWie schließe ich bestimmte transitive Abhängigkeiten in Gradle aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!