MVN Dependency Tree

Mvn Dependency Tree



“Ang mga dependency ay mga panlabas na code at snippet na na-import sa iyong proyekto upang magbigay ng karagdagang functionality. Halimbawa, ang dependency ay maaaring isa pang archive o file sa Java Projects. Iba pang mga bahagi ng proyekto pagkatapos ay sumangguni sa dependency upang tumakbo.

Ang pagkakaroon ng malinaw na larawan ng dependency tree para sa iyong proyekto ay maaaring maging kapaki-pakinabang. Binibigyang-daan nito ang mabilis na paghahanap ng mga salungatan sa pagitan ng mga naka-install na pakete at paglutas ng mga ito nang mahusay.







Sa tutorial na ito, matututunan natin kung paano tingnan ang dependency tree ng isang proyekto ng Maven.



Magsimula na tayo.



Maven Dependency Plugin

Ang Apache Maven utility ay may kasamang tool na nagbibigay-daan sa iyong pamahalaan ang iyong mga dependency. Ang Maven Dependency Plugin ay magbibigay-daan sa iyo na magpatakbo ng isang simpleng command sa iyong proyekto at mailarawan ang lahat ng mga dependency nito.





Ang mapagkukunan ng plugin ay ipinapakita sa ibaba:

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



Ang pinakamahusay na paraan upang mailarawan ang iyong project dependency tree gamit ang plugin na ito ay sa pamamagitan ng pagpapatakbo ng sumusunod na command:

mvn dependency : puno

Hahanapin ng nakaraang utos ang lahat ng mga dependency sa iyong proyekto at magbabalik ng isang istraktura na parang puno.

Ilarawan natin kung paano natin ito maisasakatuparan.

Maaari mong gamitin ang anumang proyekto ng Maven na may anumang kinakailangang dependencies upang magawa ito.

Sa sandaling patakbuhin mo ang utos sa itaas, dapat mong makita ang sumusunod na halimbawang output:

[ IMPORMASYON ] --- maven - dependency - isaksak : 2.8 : puno ( default - cli ) @ jedis ---
[ IMPORMASYON ] redis. mga kliyente : jedi : banga : 4.3.0 - SNAPSHOT
[ IMPORMASYON ] +- org. slf4j : slf4j - api : banga : 1.7.32 : mag-compile
[ IMPORMASYON ] +- org. apache . commons : commons - pool2 : banga : 2.11.1 : mag-compile
[ IMPORMASYON ] +- org. json : json : banga : 20211205 : mag-compile
[ IMPORMASYON ] +- kasama. google . code . gson : gson : banga : 2.8.9 : mag-compile
[ IMPORMASYON ] +- junit : junit : banga : 4.13.2 : pagsusulit
[ IMPORMASYON ] | \ - org. hamcrest : hamcrest - core : banga : 1.3 : pagsusulit
[ IMPORMASYON ] +- org. slf4j : slf4j - simple lang : banga : 1.7.32 : pagsusulit
[ IMPORMASYON ] +- kasama. kohlschutter . saksakan ng junix : saksakan ng junix - core : tingnan mo : 2.4.0 : pagsusulit
[ IMPORMASYON ] | +- kasama. kohlschutter . saksakan ng junix : saksakan ng junix - katutubo - karaniwan : banga : 2.4.0 : pagsusulit
[ IMPORMASYON ] | \ - kasama. kohlschutter . saksakan ng junix : saksakan ng junix - karaniwan : banga : 2.4.0 : pagsusulit
[ IMPORMASYON ] \ - org. mockito : mockito - nasa linya : banga : 3.12.4 : pagsusulit
[ IMPORMASYON ] \ - org. mockito : mockito - core : banga : 3.12.4 : pagsusulit
[ IMPORMASYON ] +- net. bytebuddy : byte - kaibigan : banga : 1.11.13 : pagsusulit
[ IMPORMASYON ] +- net. bytebuddy : byte - kaibigan - ahente : banga : 1.11.13 : pagsusulit
[ IMPORMASYON ] \ - org. sumang-ayon : sumang-ayon : banga : 3.2 : pagsusulit

Tulad ng nakikita mo mula sa output sa itaas, ibinabalik ni Maven ang lahat ng mga dependency ng aming proyekto sa isang format ng listahan.

Mainam na tandaan na ang utos na ito ay nangangailangan sa iyo na magkaroon ng Maven at Java JDK na naka-install sa iyong system.

Pag-filter ng Dependencies

Kung nagtatrabaho ka sa isang malaking proyekto, maaaring mahirapan kang tingnan at pamahalaan ang lahat ng mga dependency gamit ang command sa itaas.

Sa kabutihang-palad, ang Maven dependency tree plugin ay nagbibigay-daan sa iyo na mag-filter para sa mga ipinapakitang dependencies. Nangangahulugan ito na maaari mong isama o ibukod ang anumang dependency na gusto mo.

Upang magsama lamang ng isang partikular na dependency, ginagamit namin ang pagpipiliang Dincludes tulad ng ipinapakita sa sumusunod na syntax:

mvn dependency : puno - Kasama [ groupId ] : [ artifactId ] : [ uri ] : [ bersyon ]

Tandaan na ang bawat isa sa mga segment sa parameter na -Dincludes ay opsyonal.

Halimbawa, upang ipakita kung paano ginagamit ang isang partikular na dependency sa proyekto, maaari nating patakbuhin ang sumusunod na command:

mvn dependency : puno - Kasama = saksakan ng junix : saksakan ng junix - core

Ang nakaraang code ay dapat bumalik:

[ IMPORMASYON ]
[ IMPORMASYON ] ------------------------< redis. mga kliyente : jedi >-------------------------
[ IMPORMASYON ] Pagbuo ng Jedis 4.3.0 - SNAPSHOT
[ IMPORMASYON ] -------------------------------- [ banga ] ---------------------------------
[ IMPORMASYON ]
[ IMPORMASYON ] --- maven - dependency - isaksak : 2.8 : puno ( default - cli ) @ jedis ---

Upang ibukod ang isang dependency mula sa puno, maaari naming gamitin ang -Dincludes na parameter tulad ng ipinapakita sa syntax sa ibaba.:

mvn dependency : puno - Kasama = [ groupId ] : [ artifactId ] : [ uri ] : [ bersyon ]

Halimbawa:

mvn dependency : puno - Hindi kasama = saksakan ng junix : saksakan ng junix - core

Dapat nitong ibalik ang output tulad ng ipinapakita sa ibaba:

Maven I-save ang Dependency sa File

Maaari mo ring i-save ang dependency tree sa isang file gamit ang -DoutputFile parameter. Ang isang halimbawa ay ipinapakita sa ibaba:

mvn dependency : puno - DoutputFile = 'dep.tree'

Sa nakaraang command, itinuturo namin kay Maven na gumawa ng dependency tree at i-save ito sa isang file na tinatawag na dep.tree.

Ang resultang output ng file ay ibinigay sa ibaba:

+- org. slf4j : slf4j - api : banga : 1.7.32 : mag-compile
+- org. apache . commons : commons - pool2 : banga : 2.11.1 : mag-compile
+- org. json : json : banga : 20211205 : mag-compile
+- kasama. google . code . gson : gson : banga : 2.8.9 : mag-compile
+- junit : junit : banga : 4.13.2 : pagsusulit
| \ - org. hamcrest : hamcrest - core : banga : 1.3 : pagsusulit
+- org. slf4j : slf4j - simple lang : banga : 1.7.32 : pagsusulit
+- kasama. kohlschutter . saksakan ng junix : saksakan ng junix - core : tingnan mo : 2.4.0 : pagsusulit
| +- kasama. kohlschutter . saksakan ng junix : saksakan ng junix - katutubo - karaniwan : banga : 2.4.0 : pagsusulit
| \ - kasama. kohlschutter . saksakan ng junix : saksakan ng junix - karaniwan : banga : 2.4.0 : pagsusulit
\ - org. mockito : mockito - nasa linya : banga : 3.12.4 : pagsusulit
\ - org. mockito : mockito - core : banga : 3.12.4 : pagsusulit
+- net. bytebuddy : byte - kaibigan : banga : 1.11.13 : pagsusulit
+- net. bytebuddy : byte - kaibigan - ahente : banga : 1.11.13 : pagsusulit
\ - org. sumang-ayon : sumang-ayon : banga : 3.2 : pagsusulit

Isasama lamang ng Maven ang mga dependency ng proyekto sa file sa isang hierarchical na paraan.

Konklusyon

Sakop ng post na ito kung paano tingnan ang Maven dependency tree gamit ang Maven dependency plugin.