“Le dipendenze sono codici esterni e snippet importati nel tuo progetto per fornire funzionalità extra. Ad esempio, una dipendenza potrebbe essere un altro archivio o file in Java Projects. Altre parti del progetto fanno quindi riferimento alla dipendenza da eseguire.
Avere un'immagine chiara dell'albero delle dipendenze per il tuo progetto può essere utile. Consente di trovare rapidamente i conflitti tra i pacchetti installati e di risolverli in modo efficiente.
In questo tutorial impareremo come visualizzare l'albero delle dipendenze di un progetto Maven.'
Iniziamo.
Plugin per le dipendenze di Maven
L'utilità Apache Maven viene fornita con uno strumento che ti consente di gestire le tue dipendenze. Il plug-in Maven Dependency ti consentirà di eseguire un semplice comando nel tuo progetto e visualizzare tutte le sue dipendenze.
La risorsa del plugin è mostrata di seguito:
https://maven.apache.org/plugins/maven-dependency-plugin/usage.html
Il modo migliore per visualizzare l'albero delle dipendenze del tuo progetto con questo plugin è eseguire il comando seguente:
mvn dipendenza : alberoIl comando precedente individuerà tutte le dipendenze nel progetto e restituirà una struttura ad albero.
Illustriamo come possiamo realizzare questo.
Puoi utilizzare qualsiasi progetto Maven con tutte le dipendenze richieste per farlo.
Dopo aver eseguito il comando sopra, dovresti vedere il seguente output di esempio:
[ INFORMAZIONI ] --- Esperto di - dipendenza - collegare : 2.8 : albero ( predefinito - cli ) @ jedis ---[ INFORMAZIONI ] redis. clienti : jedi : barattolo : 4.3.0 - ISTANTANEA
[ INFORMAZIONI ] +- org. slf4j : slf4j - api : barattolo : 1.7.32 : compilare
[ INFORMAZIONI ] +- org. apache . beni comuni : beni comuni - piscina2 : barattolo : 2.11.1 : compilare
[ INFORMAZIONI ] +- org. json : json : barattolo : 20211205 : compilare
[ INFORMAZIONI ] +- insieme a. Google . codice . gson : gson : barattolo : 2.8.9 : compilare
[ INFORMAZIONI ] +- giugno : giugno : barattolo : 4.13.2 : test
[ INFORMAZIONI ] | \ - org. hamcrest : hamcrest - nucleo : barattolo : 1.3 : test
[ INFORMAZIONI ] +- org. slf4j : slf4j - semplice : barattolo : 1.7.32 : test
[ INFORMAZIONI ] +- insieme a. kohlschutter . presa Junix : presa Junix - nucleo : vedere : 2.4.0 : test
[ INFORMAZIONI ] | +- insieme a. kohlschutter . presa Junix : presa Junix - nativo - Comune : barattolo : 2.4.0 : test
[ INFORMAZIONI ] | \ - insieme a. kohlschutter . presa Junix : presa Junix - Comune : barattolo : 2.4.0 : test
[ INFORMAZIONI ] \ - org. mockito : mockito - in linea : barattolo : 3.12.4 : test
[ INFORMAZIONI ] \ - org. mockito : mockito - nucleo : barattolo : 3.12.4 : test
[ INFORMAZIONI ] +- rete. bytebuddy : byte - compagno : barattolo : 1.11.13 : test
[ INFORMAZIONI ] +- rete. bytebuddy : byte - compagno - agente : barattolo : 1.11.13 : test
[ INFORMAZIONI ] \ - org. concordato : concordato : barattolo : 3.2 : test
Come puoi vedere dall'output sopra, Maven restituisce tutte le dipendenze del nostro progetto in un formato elenco.
È bene tenere presente che questo comando richiede che Maven e Java JDK siano installati sul sistema.
Dipendenze di filtraggio
Se stai lavorando su un progetto di grandi dimensioni, potresti avere difficoltà a visualizzare e gestire tutte le dipendenze usando il comando precedente.
Fortunatamente, il plug-in dell'albero delle dipendenze Maven ti consente di filtrare le dipendenze mostrate. Ciò significa che puoi includere o escludere qualsiasi dipendenza desideri.
Per includere solo una dipendenza specifica, utilizziamo l'opzione Dincludes come mostrato nella seguente sintassi:
mvn dipendenza : albero - Include [ ID gruppo ] : [ ID artefatto ] : [ genere ] : [ versione ]Tieni presente che ciascuno dei segmenti nel parametro -Dincludes è facoltativo.
Ad esempio, per mostrare come viene utilizzata una specifica dipendenza nel progetto, possiamo eseguire il seguente comando:
mvn dipendenza : albero - Include = presa Junix : presa Junix - nucleoIl codice precedente dovrebbe restituire:
[ INFORMAZIONI ][ INFORMAZIONI ] ------------------------< redis. clienti : jedi >--------------------------
[ INFORMAZIONI ] Costruire Jedi 4.3.0 - ISTANTANEA
[ INFORMAZIONI ] -------------------------------- [ barattolo ] ----------------------------------
[ INFORMAZIONI ]
[ INFORMAZIONI ] --- Esperto di - dipendenza - collegare : 2.8 : albero ( predefinito - cli ) @ jedis ---
Per escludere una dipendenza dall'albero, possiamo utilizzare il parametro -Dincludes come mostrato nella sintassi seguente.:
mvn dipendenza : albero - Include = [ ID gruppo ] : [ ID artefatto ] : [ genere ] : [ versione ]Per esempio:
mvn dipendenza : albero - Esclude = presa Junix : presa Junix - nucleoQuesto dovrebbe restituire l'output come mostrato di seguito:
Maven Salva dipendenza su file
Puoi anche salvare l'albero delle dipendenze in un file usando il parametro -DoutputFile. Un esempio è mostrato di seguito:
mvn dipendenza : albero - DoutputFile = 'albero profondo'Nel comando precedente, indichiamo a Maven di creare un albero delle dipendenze e salvarlo in un file chiamato dep.tree.
L'output del file risultante è fornito di seguito:
+- org. slf4j : slf4j - api : barattolo : 1.7.32 : compilare+- org. apache . beni comuni : beni comuni - piscina2 : barattolo : 2.11.1 : compilare
+- org. json : json : barattolo : 20211205 : compilare
+- insieme a. Google . codice . gson : gson : barattolo : 2.8.9 : compilare
+- giugno : giugno : barattolo : 4.13.2 : test
| \ - org. hamcrest : hamcrest - nucleo : barattolo : 1.3 : test
+- org. slf4j : slf4j - semplice : barattolo : 1.7.32 : test
+- insieme a. kohlschutter . presa Junix : presa Junix - nucleo : vedere : 2.4.0 : test
| +- insieme a. kohlschutter . presa Junix : presa Junix - nativo - Comune : barattolo : 2.4.0 : test
| \ - insieme a. kohlschutter . presa Junix : presa Junix - Comune : barattolo : 2.4.0 : test
\ - org. mockito : mockito - in linea : barattolo : 3.12.4 : test
\ - org. mockito : mockito - nucleo : barattolo : 3.12.4 : test
+- rete. bytebuddy : byte - compagno : barattolo : 1.11.13 : test
+- rete. bytebuddy : byte - compagno - agente : barattolo : 1.11.13 : test
\ - org. concordato : concordato : barattolo : 3.2 : test
Maven includerà solo le dipendenze del progetto nel file in modo gerarchico.
Conclusione
Questo post ha spiegato come visualizzare l'albero delle dipendenze Maven utilizzando il plug-in delle dipendenze Maven.