web-dev-qa-db-fra.com

Qu'est-ce qu'une dépendance transitive Maven?

Cette question est sur le point de clarifier ce qu'est exactement une dépendance transitive et comment cela fonctionne à un niveau très élevé dans Maven.

Ma définition: dans un arbre de dépendance comme A -> B -> C, C est une dépendance transitive pour A . Supposons que B a la portée compiler dans A.

Si C a la portée compile dans B, alors déclarer B comme dépendance de A suffit à construire A avec Maven. Mais si C a la portée fourni dans B, alors, lorsque Maven construit A, le bâtiment ne compilera pas automatiquement A. contre C sauf si A déclare C parmi ses dépendances.

Est-ce correct?

22
Johan

Votre hypothèse est correcte.

Il existe deux types de dépendances Maven:

  • Direct: Ce sont des dépendances définies dans votre fichier pom.xml dans la section <dependencies/>.

  • Transitive: Ce sont des dépendances qui sont des dépendances de vos dépendances directes.

Les dépendances avec la portée provided sont destinées à:

  • Soit être exclu de l'artefact final (par exemple, pour les fichiers war, vous ne souhaitez pas inclure servlet-api, servlet-jsp, etc.)
  • Ou overriden - lorsque le projet qui en hérite définit une version et/ou remplace l'étendue
27
carlspring

Une dépendance à inclure lors de la déclaration de projet Est une dépendance

0
mahsa