MVN -avhengighetstreet

MVN -avhengighetstreet

“Avhengigheter er eksterne koder og utdrag importert til prosjektet ditt for å gi ekstra funksjonalitet. For eksempel kan en avhengighet være et annet arkiv eller fil i Java -prosjekter. Andre deler av prosjektet refererer deretter til avhengigheten til å kjøre.

Å ha et klart bilde av avhengighetstreet for prosjektet ditt kan være fordelaktig. Det tillater raskt å finne konflikter mellom installerte pakker og løse dem effektivt.

I denne opplæringen lærer vi å se avhengighetstreet til et Maven -prosjekt.”

La oss komme i gang.

Maven Dependency Plugin

Apache Maven -verktøyet kommer med et verktøy som lar deg administrere dine avhengigheter. Maven Dependency -plugin vil gjøre det mulig for deg å kjøre en enkel kommando i prosjektet ditt og visualisere alle dets avhengigheter.

Plugin -ressursen vises nedenfor:

https: // maven.Apache.org/plugins/maven-avhengighet-plugin/bruk.html

Den beste måten å visualisere prosjektavhengighetstreet ditt med denne plugin er ved å kjøre følgende kommando:

MVN -avhengighet: tre

Den forrige kommandoen vil finne alle avhengigheter i prosjektet ditt og returnere en trelignende struktur.

La oss illustrere hvordan vi kan oppnå dette.

Du kan bruke et hvilket som helst Maven -prosjekt med nødvendige avhengigheter for å gjøre dette.

Når du har kjørt kommandoen over, bør du se følgende eksempelutgang:

[Info] --- Maven-avhengighet-plugin: 2.8: tre (standard-cli) @ jedis ---
[Info] Redis.Klienter: Jedis: JAR: 4.3.0-SNAPSHOT
[Info] +- org.SLF4J: SLF4J-API: JAR: 1.7.32: kompilere
[Info] +- org.Apache.Commons: Commons-Pool2: Jar: 2.11.1: kompilere
[Info] +- org.JSON: JSON: JAR: 20211205: Compile
[Info] +- com.Google.kode.GSON: GSON: JAR: 2.8.9: kompilere
[Info] +- Junit: Junit: Jar: 4.1. 3.2: Test
[Info] | \- org.Hamcrest: Hamcrest-core: krukke: 1.3: Test
[Info] +- org.SLF4J: SLF4J-SIMPLE: JAR: 1.7.32: Test
[Info] +- com.Kohlschutter.Junixsocket: Junixsocket-core: POM: 2.4.0: Test
[Info] | +- com.Kohlschutter.Junixsocket: Junixsocket-Native-Common: Jar: 2.4.0: Test
[Info] | \- com.Kohlschutter.Junixsocket: Junixsocket-Common: Jar: 2.4.0: Test
[Info] \- org.Mockito: Mockito-inline: krukke: 3.12.4: Test
[Info] \- org.Mockito: Mockito-core: krukke: 3.12.4: Test
[Info] +- netto.BytaBuddy: Byte-Buddy: Jar: 1.11.13: Test
[Info] +- netto.BytaBuddy: Byte-Buddy-Agent: Jar: 1.11.13: Test
[Info] \- org.Objenese: Objenese: krukke: 3.2: Test

Som du ser fra utdataene ovenfor, returnerer Maven alle prosjektets avhengigheter i et listeformat.

Det er godt å huske på at denne kommandoen krever at du har Maven og Java JDK installert på systemet ditt.

Filtrere avhengigheter

Hvis du jobber med et stort prosjekt, kan du synes det er vanskelig å se og administrere alle avhengigheter ved å bruke kommandoen ovenfor.

Heldigvis lar Maven Dependency Tree Plugin deg filtrere for de viste avhengighetene. Dette betyr at du kan inkludere eller ekskludere all avhengighet du ønsker.

For bare å inkludere en spesifikk avhengighet, bruker vi Dinclude -alternativet som vist i følgende syntaks:

MVN -avhengighet: Tree -Dincludes [GroupID]: [Artefaktid]: [Type]: [Versjon]

Husk at hvert av segmentene i parameteren -Dincludes er valgfritt.

For å vise hvordan en spesifikk avhengighet brukes i prosjektet, kan vi for eksempel kjøre følgende kommando: for eksempel:

MVN -avhengighet: Tree -Dincludes = Junixsocket: Junixsocket -core

Den forrige koden skal returnere:

[Info]
[Info] ------------------------< redis.clients:jedis >-------------------------
[Info] Building Jedis 4.3.0-SNAPSHOT
[Info] ---------------------------- [JAR]---------------------------------
[Info]
[Info] --- Maven-avhengighet-plugin: 2.8: tre (standard-cli) @ jedis ---

For å ekskludere en avhengighet fra treet, kan vi bruke parameteren -Dinclude som vist i syntaksen nedenfor.:

MVN -avhengighet: Tree -Dincludes = [GroupId]: [Artefaktid]: [Type]: [Versjon]

For eksempel:

MVN -avhengighet: Tree -DEXCLUDES = Junixsocket: Junixsocket -core

Dette skal returnere utgangen som vist nedenfor:

Maven Lagre avhengighet til fil

Du kan også lagre avhengighetstreet i en fil ved hjelp av -DoutputFile -parameteren. Et eksempel er vist nedenfor:

MVN -avhengighet: Tree -DoutputFile = "Dep.tre"

I forrige kommando instruerer vi Maven til å lage et avhengighetstre og lagre det i en fil som heter DEP.tre.

Den resulterende filutgangen er gitt nedenfor:

+- org.SLF4J: SLF4J-API: JAR: 1.7.32: kompilere
+- org.Apache.Commons: Commons-Pool2: Jar: 2.11.1: kompilere
+- org.JSON: JSON: JAR: 20211205: Compile
+- com.Google.kode.GSON: GSON: JAR: 2.8.9: kompilere
+- Junit: Junit: Jar: 4.1. 3.2: Test
| \- org.Hamcrest: Hamcrest-core: krukke: 1.3: Test
+- org.SLF4J: SLF4J-SIMPLE: JAR: 1.7.32: Test
+- com.Kohlschutter.Junixsocket: Junixsocket-core: POM: 2.4.0: Test
| +- com.Kohlschutter.Junixsocket: Junixsocket-Native-Common: Jar: 2.4.0: Test
| \- com.Kohlschutter.Junixsocket: Junixsocket-Common: Jar: 2.4.0: Test
\- org.Mockito: Mockito-inline: krukke: 3.12.4: Test
\- org.Mockito: Mockito-core: krukke: 3.12.4: Test
+- nett.BytaBuddy: Byte-Buddy: Jar: 1.11.13: Test
+- nett.BytaBuddy: Byte-Buddy-Agent: Jar: 1.11.13: Test
\- org.Objenese: Objenese: krukke: 3.2: Test

Maven vil bare inkludere prosjektavhengighetene i filen på en hierarkisk måte.

Konklusjon

Dette innlegget dekket hvordan du kan se Maven Dependency Tree ved hjelp av Maven Dependency -plugin.