Dans Gradle, l'exclusion des dépendances transitives est cruciale pour gérer les dépendances et optimiser les performances de build. Cette question explore comment exclure toutes les instances d'une dépendance transitive spécifique, org.slf4j:slf4j-log4j12, tout en préservant les autres artefacts slf4j nécessaires.
Initialement, définir une exclusion à l'aide du groupe runtime.exclude : "org.slf4j ", nom : "slf4j-log4j12" a exclu par inadvertance tous les artefacts slf4j. Pour résoudre ce problème, il est nécessaire d'utiliser module au lieu de name pour exclure les dépendances transitives, comme démontré par :
configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
Cette syntaxe exclut effectivement uniquement le module slf4j-log4j12 spécifique tout en permettant d'inclure d'autres artefacts slf4j. .
De plus, il est crucial de comprendre le concept de « module » dans Gradle. Le module correspond à un artefact Maven particulier. Gradle dérive le module à partir du groupId et de l'artefactId des artefacts Maven, en suivant la convention :
[group]:[artifactId]
Par conséquent, pour org.slf4j:slf4j-log4j12, le module est :
org.slf4j:slf4j-log4j12
En spécifiant le module, Gradle peut cibler et exclure avec précision des dépendances transitives spécifiques sans affecter les artefacts non liés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!