Maison >Java >javaDidacticiel >Comment exclure des dépendances transitives spécifiques dans Gradle : une solution pour exclure slf4j-log4j12
Gradle permet d'exclure des dépendances transitives spécifiques pour éviter les artefacts indésirables dans vos fichiers jar construits. Dans cet article, nous allons explorer comment exclure org.slf4j:slf4j-log4j12 à l'aide des configurations Gradle.
Un projet Gradle utilisant le plugin d'application a rencontré des difficultés en excluant slf4j-log4j12 de ses dépendances d'exécution. Les premières tentatives pour l'exclure à l'aide de la configuration runtime.exclude ont exclu tous les artefacts org.slf4j, y compris slf4j-api.
Pour résoudre le problème, utilisez la syntaxe suivante pour spécifier à la fois le groupe et module :
configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
Cette approche garantit l'exclusion uniquement de la dépendance souhaitée, laissant les autres artefacts org.slf4j inchangés.
Lors de l'exclusion d'un individu dépendance, seules les propriétés du groupe et du module sont disponibles en tant que prédicats. Contrairement aux déclarations de dépendances, vous ne pouvez pas spécifier de propriétés arbitraires telles que le nom.
Le concept de « module » dans Gradle s'aligne sur la notion Maven d'artefactId. Dans l'exemple ci-dessus, slf4j-log4j12 représente le module. Pour déterminer le nom du module d'un artefact Maven, reportez-vous à son composant artificialId.
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!