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?
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 à:
war
, vous ne souhaitez pas inclure servlet-api
, servlet-jsp
, etc.)Une dépendance à inclure lors de la déclaration de projet Est une dépendance