Arbre de dépendance MVN

Arbre de dépendance MVN

«Les dépendances sont des codes externes et des extraits importés dans votre projet pour fournir des fonctionnalités supplémentaires. Par exemple, une dépendance pourrait être une autre archive ou déposer dans des projets Java. D'autres parties du projet font ensuite référence à la dépendance à exécuter.

Avoir une image claire de l'arbre de dépendance pour votre projet peut être bénéfique. Il permet de trouver rapidement des conflits entre les packages installés et les résoudre efficacement.

Dans ce tutoriel, nous apprendrons à voir l'arbre de dépendance d'un projet Maven."

Commençons.

Plugin de dépendance Maven

L'utilitaire Apache Maven est livré avec un outil qui vous permet de gérer vos dépendances. Le plugin de dépendance Maven vous permettra d'exécuter une commande simple dans votre projet et de visualiser toutes ses dépendances.

La ressource du plugin est présentée ci-dessous:

https: // maven.apache.org / plugins / maven-dépendance-plugin / usage.html

La meilleure façon de visualiser votre arborescence de dépendance de projet avec ce plugin est d'exécuter la commande suivante:

Dépendance MVN: arbre

La commande précédente localisera toutes les dépendances de votre projet et renverra une structure en forme d'arbre.

Illustrons comment nous pouvons accomplir cela.

Vous pouvez utiliser n'importe quel projet Maven avec toutes les dépendances requises pour ce faire.

Une fois que vous avez exécuté la commande ci-dessus, vous devriez voir l'exemple suivant Sortie:

[Info] --- Maven-Dependance-Plugin: 2.8: Tree (par défaut-Cli) @ Jedis ---
[Info] redis.Clients: Jedis: Jar: 4.3.0-napshot
[Info] + - org.SLF4J: SLF4J-API: JAR: 1.7.32: compiler
[Info] + - org.apache.Commons: Commons-Pool2: Jar: 2.11.1: compiler
[Info] + - org.JSON: JSON: JAR: 20211205: Compiler
[Info] + - com.Google.code.GSON: GSON: JAR: 2.8.9: compiler
[Info] + - Junit: Junit: Jar: 4.13.2: tester
[Info] | \ - org.Hamcrest: Hamcrest-Core: Jar: 1.3: tester
[Info] + - org.SLF4J: SLF4J-Simple: Jar: 1.7.32: tester
[Info] + - com.kohlschutter.JunixSocket: JunixSocket-core: Pom: 2.4.0: tester
[Info] | + - com.kohlschutter.JUNIXSOOCK: JUNIXSOOCKING-NATIF-COMMON: JAR: 2.4.0: tester
[Info] | \ - com.kohlschutter.JUNIXSOOCK: JUNIXSOOCK-COMMON: JAR: 2.4.0: tester
[Info] \ - org.Mockito: Mockito-inline: Jar: 3.12.4: tester
[Info] \ - org.Mockito: Mockito-core: Jar: 3.12.4: tester
[Info] + - net.Bytebuddy: Byte-Buddy: Jar: 1.11.13: tester
[Info] + - net.BYTEBUDDY: BYTE-BUDDY-AGENT: JAR: 1.11.13: tester
[Info] \ - org.OBJENESES: Objenesis: Jar: 3.2: tester

Comme vous pouvez le voir dans la sortie ci-dessus, Maven renvoie toutes les dépendances de notre projet dans un format de liste.

Il est bon de garder à l'esprit que cette commande vous oblige à faire installer Maven et Java JDK sur votre système.

Filtrage des dépendances

Si vous travaillez sur un grand projet, vous pouvez avoir du mal à afficher et gérer toutes les dépendances en utilisant la commande ci-dessus.

Heureusement, le plugin d'arbre de dépendance Maven vous permet de filtrer les dépendances montrées. Cela signifie que vous pouvez inclure ou exclure toute dépendance que vous souhaitez.

Pour inclure uniquement une dépendance spécifique, nous utilisons l'option Dincludes comme indiqué dans la syntaxe suivante:

MVN Dependency: Tree -Dincluds [GroupID]: [Artifactid]: [Type]: [Version]

Gardez à l'esprit que chacun des segments du paramètre -includs est facultatif.

Par exemple, pour montrer comment une dépendance spécifique est utilisée dans le projet, nous pouvons exécuter la commande suivante:

Dépendance MVN: Tree -Dincludes = JunixSocket: JunixSocket-core

Le code précédent doit retourner:

[INFO]
[INFO] ------------------------< redis.clients:jedis >-------------------------
[Info] Bâtiment Jedis 4.3.0-napshot
[Info] -------------------------------- [Jar]---------------------------------
[INFO]
[Info] --- Maven-Dependance-Plugin: 2.8: Tree (par défaut-Cli) @ Jedis ---

Pour exclure une dépendance de l'arbre, nous pouvons utiliser le paramètre -Dincluds comme indiqué dans la syntaxe ci-dessous.:

MVN Dependency: Tree -Dincludes = [GroupID]: [Artifactive]: [Type]: [Version]

Par exemple:

Dépendance MVN: Tree -dexcludes = JunixSocket: JunixSocket-core

Cela devrait renvoyer la sortie comme indiqué ci-dessous:

Maven Enregistrer la dépendance dans le fichier

Vous pouvez également enregistrer l'arborescence de dépendance dans un fichier à l'aide du paramètre -DOutputFile. Un exemple est indiqué ci-dessous:

Dépendance MVN: Tree -dOutputFile = "DEP.arbre"

Dans la commande précédente, nous demandons à Maven de créer un arbre de dépendance et de l'enregistrer dans un fichier appelé DEP.arbre.

La sortie du fichier résultant est fournie ci-dessous:

+- org.SLF4J: SLF4J-API: JAR: 1.7.32: compiler
+- org.apache.Commons: Commons-Pool2: Jar: 2.11.1: compiler
+- org.JSON: JSON: JAR: 20211205: Compiler
+- com.Google.code.GSON: GSON: JAR: 2.8.9: compiler
+- Junit: Junit: Jar: 4.13.2: tester
| \ - org.Hamcrest: Hamcrest-Core: Jar: 1.3: tester
+- org.SLF4J: SLF4J-Simple: Jar: 1.7.32: tester
+- com.kohlschutter.JunixSocket: JunixSocket-core: Pom: 2.4.0: tester
| + - com.kohlschutter.JUNIXSOOCK: JUNIXSOOCKING-NATIF-COMMON: JAR: 2.4.0: tester
| \ - com.kohlschutter.JUNIXSOOCK: JUNIXSOOCK-COMMON: JAR: 2.4.0: tester
\ - org.Mockito: Mockito-inline: Jar: 3.12.4: tester
\ - org.Mockito: Mockito-core: Jar: 3.12.4: tester
+- filet.Bytebuddy: Byte-Buddy: Jar: 1.11.13: tester
+- filet.BYTEBUDDY: BYTE-BUDDY-AGENT: JAR: 1.11.13: tester
\ - org.OBJENESES: Objenesis: Jar: 3.2: tester

Maven n'inclura que les dépendances du projet dans le fichier de manière hiérarchique.

Conclusion

Ce message a couvert comment afficher l'arbre de dépendance Maven à l'aide du plugin de dépendance Maven.