MVN-afhankelijkheidsboom

Mvn Afhankelijkheidsboom



“Afhankelijkheden zijn externe codes en fragmenten die in uw project worden geïmporteerd om extra functionaliteit te bieden. Een afhankelijkheid kan bijvoorbeeld een ander archief of bestand in Java Projects zijn. Andere delen van het project verwijzen vervolgens naar de afhankelijkheid die moet worden uitgevoerd.

Het kan nuttig zijn om een ​​duidelijk beeld te hebben van de afhankelijkheidsboom voor uw project. Hiermee kunnen snel conflicten tussen geïnstalleerde pakketten worden gevonden en efficiënt worden opgelost.







In deze zelfstudie leren we hoe we de afhankelijkheidsboom van een Maven-project kunnen bekijken.”



Laten we beginnen.



Maven Dependency-plug-in

Het hulpprogramma Apache Maven wordt geleverd met een tool waarmee u uw afhankelijkheden kunt beheren. Met de Maven Dependency-plug-in kunt u een eenvoudige opdracht in uw project uitvoeren en al zijn afhankelijkheden visualiseren.





De plug-inbron wordt hieronder weergegeven:

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



De beste manier om uw projectafhankelijkheidsboom te visualiseren met deze plug-in is door de volgende opdracht uit te voeren:

mvn-afhankelijkheid : boom

De vorige opdracht zal alle afhankelijkheden in uw project lokaliseren en een boomachtige structuur retourneren.

Laten we illustreren hoe we dit kunnen bereiken.

U kunt hiervoor elk Maven-project met alle vereiste afhankelijkheden gebruiken.

Nadat u de bovenstaande opdracht hebt uitgevoerd, zou u de volgende voorbeelduitvoer moeten zien:

[ INFO ] --- maven - afhankelijkheid - inpluggen : 2.8 : boom ( standaard - klik ) @ jedis ---
[ INFO ] opnieuw. klanten : jedi : kan : 4.3.0 - MOMENTOPNAME
[ INFO ] +- org. slf4j : slf4j - api : kan : 1.7.32 : compileren
[ INFO ] +- org. apache . commons : commons - zwembad2 : kan : 2.11.1 : compileren
[ INFO ] +- org. json : json : kan : 20211205 : compileren
[ INFO ] +- met. google . code . gson : gson : kan : 2.8.9 : compileren
[ INFO ] +- junit : junit : kan : 4.13.2 : testen
[ INFO ] | \ - org. hamcrest : hamcrest - kern : kan : 1.3 : testen
[ INFO ] +- org. slf4j : slf4j - gemakkelijk : kan : 1.7.32 : testen
[ INFO ] +- met. kohlschutter . junix stopcontact : junix stopcontact - kern : zien : 2.4.0 : testen
[ INFO ] | +- met. kohlschutter . junix stopcontact : junix stopcontact - oorspronkelijk - gemeenschappelijk : kan : 2.4.0 : testen
[ INFO ] | \ - met. kohlschutter . junix stopcontact : junix stopcontact - gemeenschappelijk : kan : 2.4.0 : testen
[ INFO ] \ - org. mockito : mockito - in lijn : kan : 3.12.4 : testen
[ INFO ] \ - org. mockito : mockito - kern : kan : 3.12.4 : testen
[ INFO ] +- netto. bytebuddy : byte - vriend : kan : 1.11.13 : testen
[ INFO ] +- netto. bytebuddy : byte - vriend - tussenpersoon : kan : 1.11.13 : testen
[ INFO ] \ - org. overeengekomen : overeengekomen : kan : 3.2 : testen

Zoals je kunt zien aan de hand van de bovenstaande uitvoer, retourneert Maven alle afhankelijkheden van ons project in een lijstindeling.

Het is goed om te onthouden dat voor deze opdracht Maven en Java JDK op uw systeem moeten zijn geïnstalleerd.

Afhankelijkheden filteren

Als u aan een groot project werkt, vindt u het misschien moeilijk om alle afhankelijkheden te bekijken en te beheren met behulp van de bovenstaande opdracht.

Gelukkig kun je met de Maven-afhankelijkheidsboom-plug-in filteren op de getoonde afhankelijkheden. Dit betekent dat u elke gewenste afhankelijkheid kunt opnemen of uitsluiten.

Om alleen een specifieke afhankelijkheid op te nemen, gebruiken we de optie Dincludes zoals weergegeven in de volgende syntaxis:

mvn-afhankelijkheid : boom - Inclusief [ groupId ] : [ artefactId ] : [ type ] : [ versie ]

Houd er rekening mee dat elk van de segmenten in de parameter -Dincludes optioneel is.

Om bijvoorbeeld te laten zien hoe een specifieke afhankelijkheid in het project wordt gebruikt, kunnen we de volgende opdracht uitvoeren:

mvn-afhankelijkheid : boom - Inclusief = junix stopcontact : junix stopcontact - kern

De vorige code zou moeten terugkeren:

[ INFO ]
[ INFO ] ------------------------< opnieuw. klanten : jedi >-------------------------
[ INFO ] Jedis bouwen 4.3.0 - MOMENTOPNAME
[ INFO ] -------------------------------- [ kan ] ---------------------------------
[ INFO ]
[ INFO ] --- maven - afhankelijkheid - inpluggen : 2.8 : boom ( standaard - klik ) @ jedis ---

Om een ​​afhankelijkheid van de boomstructuur uit te sluiten, kunnen we de parameter -Dincludes gebruiken, zoals weergegeven in de onderstaande syntaxis.:

mvn-afhankelijkheid : boom - Inclusief = [ groupId ] : [ artefactId ] : [ type ] : [ versie ]

Bijvoorbeeld:

mvn-afhankelijkheid : boom - exclusief = junix stopcontact : junix stopcontact - kern

Dit zou de output moeten retourneren zoals hieronder getoond:

Maven Afhankelijkheid opslaan in bestand

U kunt de afhankelijkheidsstructuur ook opslaan in een bestand met behulp van de parameter -DoutputFile. Een voorbeeld is hieronder weergegeven:

mvn-afhankelijkheid : boom - DoutputBestand = 'dep.boom'

In de vorige opdracht gaven we Maven de opdracht om een ​​afhankelijkheidsboom te maken en deze op te slaan in een bestand met de naam dep.tree.

De resulterende bestandsuitvoer wordt hieronder weergegeven:

+- org. slf4j : slf4j - api : kan : 1.7.32 : compileren
+- org. apache . commons : commons - zwembad2 : kan : 2.11.1 : compileren
+- org. json : json : kan : 20211205 : compileren
+- met. google . code . gson : gson : kan : 2.8.9 : compileren
+- junit : junit : kan : 4.13.2 : testen
| \ - org. hamcrest : hamcrest - kern : kan : 1.3 : testen
+- org. slf4j : slf4j - gemakkelijk : kan : 1.7.32 : testen
+- met. kohlschutter . junix stopcontact : junix stopcontact - kern : zien : 2.4.0 : testen
| +- met. kohlschutter . junix stopcontact : junix stopcontact - oorspronkelijk - gemeenschappelijk : kan : 2.4.0 : testen
| \ - met. kohlschutter . junix stopcontact : junix stopcontact - gemeenschappelijk : kan : 2.4.0 : testen
\ - org. mockito : mockito - in lijn : kan : 3.12.4 : testen
\ - org. mockito : mockito - kern : kan : 3.12.4 : testen
+- netto. bytebuddy : byte - vriend : kan : 1.11.13 : testen
+- netto. bytebuddy : byte - vriend - tussenpersoon : kan : 1.11.13 : testen
\ - org. overeengekomen : overeengekomen : kan : 3.2 : testen

Maven zal de projectafhankelijkheden alleen hiërarchisch in het bestand opnemen.

Conclusie

In dit bericht werd beschreven hoe u de Maven-afhankelijkheidsboom kunt bekijken met behulp van de Maven-afhankelijkheidsplug-in.