In Gradle ist der Ausschluss transitiver Abhängigkeiten von entscheidender Bedeutung für die Verwaltung von Abhängigkeiten und die Optimierung der Build-Leistung. In dieser Frage wird untersucht, wie alle Instanzen einer bestimmten transitiven Abhängigkeit, org.slf4j:slf4j-log4j12, ausgeschlossen werden können, während andere notwendige slf4j-Artefakte erhalten bleiben.
Zunächst wird ein Ausschluss mithilfe der runtime.exclude-Gruppe festgelegt: „org.slf4j ", Name: „slf4j-log4j12“ hat versehentlich alle slf4j-Artefakte ausgeschlossen. Um dies zu beheben, ist es notwendig, zum Ausschließen transitiver Abhängigkeiten ein Modul anstelle eines Namens zu verwenden, wie Folgendes zeigt:
configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
Diese Syntax schließt effektiv nur das spezifische slf4j-log4j12-Modul aus, während andere slf4j-Artefakte einbezogen werden können .
Außerdem ist es wichtig, das Konzept des „Moduls“ in Gradle zu verstehen. Das Modul entspricht einem bestimmten Maven-Artefakt. Gradle leitet das Modul von der Gruppen- und Artefakt-ID der Maven-Artefakte ab und folgt dabei der Konvention:
[group]:[artifactId]
Daher lautet das Modul für org.slf4j:slf4j-log4j12:
org.slf4j:slf4j-log4j12
Durch die Angabe des Moduls kann Gradle gezielt auf bestimmte transitive Abhängigkeiten abzielen und diese ausschließen, ohne dass sich dies auf nicht verwandte Artefakte auswirkt.
Das obige ist der detaillierte Inhalt vonWie kann man bestimmte transitive Abhängigkeiten in Gradle ausschließen, ohne andere Artefakte zu beeinträchtigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!