Dépendances transitives et portée des dépendances
Les dépendances de Maven sont transitives, telles que A->B, B->C, puis A dépend indirectement de C , c'est la transitivité de dépendance, où A est la première dépendance directe sur B, B est la deuxième dépendance directe sur C et C est la dépendance transitive de A.
En développement normal, si notre projet dépend de spring-core, que la portée de la dépendance est compilée et que spring-core dépend de commons-logging, et que la portée de la dépendance est également compilée, alors notre projet dépendra de commons -logging La portée de cette dépendance transitive est la compilation. La portée de la première dépendance directe et la portée de la deuxième dépendance directe déterminent la portée de la dépendance transitive. Nous utilisons le tableau suivant pour illustrer, dans lequel la colonne la plus à gauche est la première dépendance directe et la colonne du haut est la deuxième dépendance directe. Au milieu se trouvent les portées de dépendances transitives.
|
Compile |
Test |
Provided |
Runtime |
Compile |
Compile |
|
|
Runtime |
Test |
Test |
|
|
Test |
Provided |
Provided |
|
Provided |
Provided |
Runtime |
Runtime |
|
|
Runtime |
|
Compiler
|
Test |
Fourni
|
Exécution
|
Compile
|
Test
td>
Test
|
|
|
Test
|
|
Fourni
td>
|
Fourni |
|
Fourni
|
Fourni
|
Exécution |
Exécution |
|
|
Runtime |
Par exemple : la première portée de dépendance directe est Test, la deuxième portée de dépendance directe est Compile , Ensuite, la portée de la dépendance transitive est Test, et vous pouvez juger sur la base de ce tableau. En regardant attentivement le tableau, nous pouvons trouver ce modèle : Lorsque la portée de la deuxième dépendance directe est compilée, la portée de la dépendance transitive est la même comme le premier La portée des dépendances directes est cohérente Lorsque la portée de la deuxième dépendance directe est testée, la dépendance ne sera pas transmise Lorsque la portée de la deuxième dépendance directe est testée, la dépendance ne sera pas transmise ; Lorsque la portée de la deuxième dépendance directe est fournie, seule la dépendance de la première dépendance directe est également fournie, et la portée du transitif la dépendance est également fournie ; Lorsque la deuxième dépendance directe est également fournie, la portée de la dépendance transitive est également fournie. Lorsque la portée de la dépendance est l'exécution, la portée du transitif ; La dépendance est la même que la portée de la première dépendance directe, à l'exception de la compilation. Dans ce cas, la portée de la dépendance transitive est l'exécution.
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!
Déclaration: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