Ce qui est transitive Maven dépendance?
Cette question est sur le point de clarifier ce qu'est exactement un dépendance transitive est et comment il fonctionne très haut niveau dans Maven.
Ma définition: dans un arbre de dépendances comme Un --> B - > C, C est une dépendance transitive pour Un. Supposons B a une portée compiler dans Un.
Si C a une portée compiler dans B, puis déclarant B comme dépendance de Un suffit de construire Un avec Maven. Mais si C a une portée fourni dans B puis, quand Maven s'appuie Un, le bâtiment ne sera pas automatiquement compiler Un contre C sauf Un déclare C parmi ses dépendances.
Est-ce correct?
- Ce n', contre une moyenne de 'compiler Un contre C'? Je suis un mvn débutant et j'ai remarqué que cet exemple est exactement ce que je ne savais pas. Je pense à Un contre C 'utilisation de certains
import C.someClass
à A. someClass'. Est-ce correct? - Je suppose que ce qu'il signifie est que si C a une portée fournis dans B, alors l'artefact généré ne sera pas inclure C. Cette déclaration à l'importation C. someClass à A. someClass fonctionnera lorsque vous avez C dans votre classpath au moment de la compilation, mais si pour une raison quelconque n'est PAS fourni lors de l'exécution, vous n'aurez pas la classe def trouvé exception.
Vous devez vous connecter pour publier un commentaire.
Votre hypothèse est correcte.
Il existe deux types de dépendances Maven:
Direct: ce sont les dépendances définies dans votre
pom.xml
fichier sous le<dependencies/>
section.Transitif: Ces sont des dépendances qui sont des dépendances de vos dépendances directes.
Dépendances avec
provided
champ d'application visent à:war
fichiers que vous ne voulez pas inclureservlet-api
,servlet-jsp
, etc)Une dépendance qui doivent être incluses lors de la déclaration de projet
lui-même est une dépendance