Maison > Java > javaDidacticiel > le corps du texte

Comment exclure des dépendances transitives spécifiques dans Gradle ?

Susan Sarandon
Libérer: 2024-10-26 10:44:03
original
659 Les gens l'ont consulté

How to Exclude Specific Transitive Dependencies in Gradle?

Exclusion des dépendances transitives avec Gradle

Dans Gradle, lors de l'utilisation du plugin d'application pour générer un fichier jar, il est possible de rencontrer des dépendances transitives qui vous souhaiterez peut-être exclure. Pour ce faire, la méthode d'exclusion peut être utilisée.

Comportement par défaut de l'exclusion

Initialement, une tentative a été faite pour exclure toutes les instances de org.slf4j:slf4j- log4j12 en utilisant le code suivant :

configurations {
  runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
Copier après la connexion

Cependant, cela a entraîné l'exclusion de tous artefacts org.slf4j, y compris slf4j-api.

Personnalisation les exclusions

Pour affiner l'exclusion, les propriétés du groupe et du module peuvent être utilisées :

configurations {
  runtime.exclude group: "org.slf4j", module: "slf4j-log4j12"
}
Copier après la connexion

Cette approche exclut avec succès uniquement org.slf4j:slf4j-log4j12 sans affecter les autres slf4j dépendances.

Exclure d'une dépendance individuelle

Si l'exclusion est souhaitée pour une dépendance spécifique, la syntaxe suivante peut être utilisée :

dependencies {
  compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') {
    exclude group: "org.slf4j", module: "slf4j-log4j12"
  }
}
Copier après la connexion

Limitations de la méthode Exclude

Il est important de noter que même si des propriétés arbitraires peuvent être spécifiées dans les exclusions, cela n'est pas autorisé lors de l'exclusion de dépendances individuelles. Par exemple, le code suivant échouera :

dependencies {
  compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') {
    exclude group: "org.slf4j", name: "slf4j-log4j12"
  }
}
Copier après la connexion

avec le message d'erreur suivant :

No such property: name for class: org.gradle.api.internal.artifacts.DefaultExcludeRule
Copier après la connexion

Comprendre les modules Gradle

Dans Gradle , la propriété module correspond à l'artefact Maven. Par conséquent, pour déterminer le module d’un artefact Maven particulier, inspectez son artefactId. Par exemple, l'artefact Maven org.slf4j:slf4j-log4j12 aurait un module Gradle de slf4j-log4j12.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!