Arbre de dependència MVN

Arbre De Dependencia Mvn



'Les dependències són codis i fragments externs importats al vostre projecte per oferir una funcionalitat addicional. Per exemple, una dependència podria ser un altre arxiu o fitxer a Java Projects. Altres parts del projecte fan referència a la dependència a executar.

Tenir una imatge clara de l'arbre de dependències del vostre projecte pot ser beneficiós. Permet trobar ràpidament conflictes entre paquets instal·lats i resoldre'ls de manera eficient.







En aquest tutorial, aprendrem a veure l'arbre de dependències d'un projecte Maven.



Comencem.



Connector de dependència de Maven

La utilitat Apache Maven inclou una eina que us permet gestionar les vostres dependències. El complement de dependència de Maven us permetrà executar una ordre senzilla al vostre projecte i visualitzar totes les seves dependències.





El recurs del connector es mostra a continuació:

https://maven.apache.org/plugins/maven-dependency-plugin/usage.html



La millor manera de visualitzar l'arbre de dependència del vostre projecte amb aquest connector és executant l'ordre següent:

dependència mvn : arbre

L'ordre anterior localitzarà totes les dependències del vostre projecte i retornarà una estructura en forma d'arbre.

Il·lustrem com podem aconseguir-ho.

Podeu utilitzar qualsevol projecte Maven amb les dependències necessàries per fer-ho.

Un cop executeu l'ordre anterior, hauríeu de veure la següent sortida d'exemple:

[ INFO ] --- maven - dependència - connectar : 2.8 : arbre ( per defecte - cli ) @jedis ---
[ INFO ] redis. clients : jedi : pot : 4.3.0 - INSTANTÀNIA
[ INFO ] +- org. slf4j : slf4j - api : pot : 1.7.32 : compilar
[ INFO ] +- org. apache . comuns : comuns - piscina 2 : pot : 2.11.1 : compilar
[ INFO ] +- org. json : json : pot : 20211205 : compilar
[ INFO ] +- amb. Google . codi . gson : gson : pot : 2.8.9 : compilar
[ INFO ] +- junit : junit : pot : 4.13.2 : prova
[ INFO ] | \ - org. Hamcrest : Hamcrest - nucli : pot : 1.3 : prova
[ INFO ] +- org. slf4j : slf4j - senzill : pot : 1.7.32 : prova
[ INFO ] +- amb. kohlschutter . presa junix : presa junix - nucli : veure : 2.4.0 : prova
[ INFO ] | +- amb. kohlschutter . presa junix : presa junix - autòcton - comú : pot : 2.4.0 : prova
[ INFO ] | \ - amb. kohlschutter . presa junix : presa junix - comú : pot : 2.4.0 : prova
[ INFO ] \ - org. mockito : mockito - en linia : pot : 3.12.4 : prova
[ INFO ] \ - org. mockito : mockito - nucli : pot : 3.12.4 : prova
[ INFO ] +- net. bytebuddy : byte - amic : pot : 1.11.13 : prova
[ INFO ] +- net. bytebuddy : byte - amic - agent : pot : 1.11.13 : prova
[ INFO ] \ - org. convingut : convingut : pot : 3.2 : prova

Com podeu veure a la sortida anterior, Maven retorna totes les dependències del nostre projecte en un format de llista.

És bo tenir en compte que aquesta ordre requereix que tingueu Maven i Java JDK instal·lats al vostre sistema.

Filtrat de dependències

Si esteu treballant en un projecte gran, és possible que us resulti difícil veure i gestionar totes les dependències mitjançant l'ordre anterior.

Afortunadament, el connector de l'arbre de dependències de Maven us permet filtrar les dependències mostrades. Això vol dir que podeu incloure o excloure qualsevol dependència que vulgueu.

Per incloure només una dependència específica, utilitzem l'opció Dincludes tal com es mostra a la sintaxi següent:

dependència mvn : arbre - Dinclou [ groupId ] : [ artefactId ] : [ tipus ] : [ versió ]

Tingueu en compte que cadascun dels segments del paràmetre -Dincludes és opcional.

Per exemple, per mostrar com s'utilitza una dependència específica al projecte, podem executar l'ordre següent:

dependència mvn : arbre - Dinclou = presa junix : presa junix - nucli

El codi anterior hauria de tornar:

[ INFO ]
[ INFO ] ------------------------< redis. clients : jedi >-------------------------
[ INFO ] Construint Jedis 4.3.0 - INSTANTÀNIA
[ INFO ] -------------------------------- [ pot ] ---------------------------------
[ INFO ]
[ INFO ] --- maven - dependència - connectar : 2.8 : arbre ( per defecte - cli ) @jedis ---

Per excloure una dependència de l'arbre, podem utilitzar el paràmetre -Dincludes tal com es mostra a la sintaxi següent.:

dependència mvn : arbre - Dinclou = [ groupId ] : [ artefactId ] : [ tipus ] : [ versió ]

Per exemple:

dependència mvn : arbre - Desexclou = presa junix : presa junix - nucli

Això hauria de retornar la sortida tal com es mostra a continuació:

Maven Desa la dependència al fitxer

També podeu desar l'arbre de dependències en un fitxer mitjançant el paràmetre -DoutputFile. A continuació es mostra un exemple:

dependència mvn : arbre - DoutputFile = 'dep.tree'

A l'ordre anterior, demanem a Maven que creï un arbre de dependències i el desi en un fitxer anomenat dep.tree.

La sortida del fitxer resultant es proporciona a continuació:

+- org. slf4j : slf4j - api : pot : 1.7.32 : compilar
+- org. apache . comuns : comuns - piscina 2 : pot : 2.11.1 : compilar
+- org. json : json : pot : 20211205 : compilar
+- amb. Google . codi . gson : gson : pot : 2.8.9 : compilar
+- junit : junit : pot : 4.13.2 : prova
| \ - org. Hamcrest : Hamcrest - nucli : pot : 1.3 : prova
+- org. slf4j : slf4j - senzill : pot : 1.7.32 : prova
+- amb. kohlschutter . presa junix : presa junix - nucli : veure : 2.4.0 : prova
| +- amb. kohlschutter . presa junix : presa junix - autòcton - comú : pot : 2.4.0 : prova
| \ - amb. kohlschutter . presa junix : presa junix - comú : pot : 2.4.0 : prova
\ - org. mockito : mockito - en linia : pot : 3.12.4 : prova
\ - org. mockito : mockito - nucli : pot : 3.12.4 : prova
+- net. bytebuddy : byte - amic : pot : 1.11.13 : prova
+- net. bytebuddy : byte - amic - agent : pot : 1.11.13 : prova
\ - org. convingut : convingut : pot : 3.2 : prova

Maven només inclourà les dependències del projecte al fitxer de manera jeràrquica.

Conclusió

Aquesta publicació tractava com veure l'arbre de dependència de Maven mitjançant el connector de dependència de Maven.