Valgfri avhengighet i Maven

1. Oversikt

Denne korte opplæringen vil beskrive Mavens tag og hvordan vi kan bruke den til å redusere størrelsen og omfanget av et Maven-prosjekts gjenstand, for eksempel en WAR, EAR eller JAR.

For en forfriskning på Maven, sjekk ut vår omfattende guide.

2. Hva er? ?

Noen ganger lager vi et Maven-prosjekt for å være en avhengighet for andre Maven-prosjekter. Når du jobber med et slikt prosjekt, kan det være nødvendig å inkludere en eller flere avhengigheter som bare er nyttige for en delmengde av prosjektets funksjoner.

Hvis en sluttbruker ikke bruker den delen av funksjonen, trekker prosjektet fremdeles transitt inn disse avhengighetene. Dette blander brukerens prosjektstørrelse unødvendig, og kan til og med introdusere motstridende avhengighetsversjoner med andre prosjektavhengigheter.

Ideelt sett bør vi dele prosjektets funksjonsundersett i sin egen modul og derfor ikke forurense resten av prosjektet. Dette er imidlertid ikke alltid praktisk.

For å ekskludere disse spesielle avhengighetene fra hovedprosjektet, kan vi bruke Mavens merke til dem. Dette tvinger enhver bruker som ønsker å bruke disse avhengighetene til å erklære dem eksplisitt. Det tvinger imidlertid ikke disse avhengighetene inn i et prosjekt som ikke trenger dem.

3. Hvordan bruke

Som vi skal se, kan vi inkludere element med verdien på ekte for å gjøre enhver Maven-avhengighet valgfri.

La oss anta at vi har følgende prosjektpom:

 ... prosjekt med valgfrie ... com.baeldung valgfritt prosjekt 0.0.1-SNAPSHOT sant 

I dette eksemplet, skjønt valgfritt prosjekt er merket som valgfritt, forblir det som en brukbar avhengighet av prosjekt-med-valgfrie som om tag var aldri der.

For å se effekten av tag, må vi lage et nytt prosjekt som avhenger av prosjekt-med-valg:

 ... hovedprosjekt ... com.baeldung prosjekt-med-valgfri 0.0.1-SNAPSHOT 

Nå hvis vi prøver å referere valgfritt prosjekt innenfra hovedprosjekt, vi ser det valgfritt prosjekt eksisterer ikke. Dette er fordi -koden forhindrer at den blir inkludert transitt.

Hvis vi finner ut at vi trenger det valgfritt prosjekt i vår hovedprosjekt, vi trenger bare å erklære det som en avhengighet.

4. Konklusjon

I denne artikkelen så vi på Mavens stikkord. De viktigste fordelene ved å bruke taggen er at den kan redusere størrelsen på et prosjekt og bidra til å forhindre versjonskonflikter. Vi så også at taggen ikke påvirker prosjektet som bruker den.

Kildekoden i denne artikkelen er tilgjengelig på Github.


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