Valgfri afhængighed i Maven

1. Oversigt

Denne korte vejledning beskriver Mavens tag, og hvordan vi kan bruge det til at reducere størrelsen og omfanget af et Maven-projekts artefakt, såsom en WAR, EAR eller JAR.

For en forfriskning på Maven, se vores omfattende guide.

2. Hvad er? ?

Nogle gange opretter vi et Maven-projekt for at være en afhængighed af andre Maven-projekter. Når du arbejder på et sådant projekt, kan det være nødvendigt at medtage en eller flere afhængigheder, der kun er nyttige for en delmængde af projektets funktioner.

Hvis en slutbruger ikke bruger denne funktionsundersæt, trækker projektet stadig disse afhængigheder transitivt ind. Dette spreder brugerens projektstørrelse unødigt og kan endda introducere modstridende afhængighedsversioner med andre projektafhængigheder.

Ideelt set bør vi opdele projektets funktionsundersæt i sit eget modul og derfor ikke forurene resten af ​​projektet. Dette er dog ikke altid praktisk.

For at udelukke disse specielle afhængigheder fra hovedprojektet kan vi anvende Mavens tag til dem. Dette tvinger enhver bruger, der ønsker at bruge disse afhængigheder til at erklære dem eksplicit. Det tvinger dog ikke disse afhængigheder ind i et projekt, der ikke har brug for dem.

3. Sådan bruges

Som vi skal se, kan vi inkludere element med en værdi på rigtigt for at gøre enhver Maven-afhængighed valgfri.

Lad os antage, at vi har følgende projektpom:

 ... projekt-med-valgmuligheder ... com.baeldung valgfrit-projekt 0.0.1-SNAPSHOT sandt 

I dette eksempel, selvom valgfrit-projekt er mærket som valgfri, forbliver den som en anvendelig afhængighed af projekt-med-valgfri som om tag var der aldrig.

For at se effekten af tag, skal vi oprette et nyt projekt, der afhænger af projekt-med-valgfri:

 ... hovedprojekt ... com.baeldung projekt-med-valgfri 0.0.1-SNAPSHOT 

Nu hvis vi prøver at henvise valgfrit-projekt indefra hovedprojekt, det ser vi valgfrit-projekt eksisterer ikke. Dette skyldes, at tag forhindrer det i at blive inkluderet transitivt.

Hvis vi finder ud af, at vi har brug for det valgfrit-projekt i vores hovedprojekt, vi er simpelthen nødt til at erklære det som en afhængighed.

4. Konklusion

I denne artikel kiggede vi på Mavens tag. De vigtigste fordele ved at bruge tagget er, at det kan reducere et projekts størrelse og hjælpe med at forhindre versionskonflikter. Vi så også, at tagget ikke påvirker det projekt, der bruger det.

Kildekoden i denne artikel er tilgængelig på Github.


$config[zx-auto] not found$config[zx-overlay] not found