Ausschließen transitiver Abhängigkeiten mit Gradle
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 Exclude-Methode verwendet werden.
Standardverhalten von Exclude
Zunächst wurde versucht, alle Instanzen von org.slf4j:slf4j- auszuschließen. log4j12 mit dem folgenden Code:
configurations { runtime.exclude group: "org.slf4j", name: "slf4j-log4j12" }
Dies führte jedoch zum Ausschluss von allen org.slf4j-Artefakten, einschließlich slf4j-api.
Anpassen der 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-Abhängigkeiten zu beeinträchtigen.
Aus einer individuellen Abhängigkeit ausschließen
Wenn die Wenn ein Ausschluss für eine bestimmte Abhängigkeit gewünscht wird, kann die folgende Syntax verwendet werden verwendet:
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 aus 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 entspricht die Moduleigenschaft 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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3