Opcionális függőség Mavenben

1. Áttekintés

Ez a rövid bemutató leírja Mavenét tag és hogyan használhatjuk egy Maven projekt műtárgyának, például WAR, EAR vagy JAR méretének és terjedelmének csökkentésére.

A Maven frissítéséhez olvassa el átfogó útmutatónkat.

2. Mi az ?

Néha létrehozunk egy Maven-projektet, hogy más Maven-projektek függősége legyen. Egy ilyen projekten dolgozva szükség lehet egy vagy több olyan függőség beiktatására, amelyek csak a projekt jellemzőinek egy részéhez hasznosak.

Ha egy végfelhasználó nem használja ezt a funkciót, akkor a projekt átmenetileg behúzza ezeket a függőségeket. Ez feleslegesen felduzzasztja a felhasználó projektméretét, és akár konfliktusos függőségi verziókat is bevezethet más projektfüggőségekkel.

Ideális esetben a projekt funkcióinak részhalmazát fel kell osztanunk a saját moduljára, és ezért nem szennyezhetjük a projekt többi részét. Ez azonban nem mindig praktikus.

Ezeknek a speciális függőségeknek a fő projektből való kizárása érdekében alkalmazhatjuk Maven-eket tag nekik. Ez arra kényszeríti a felhasználókat, akik ezeket a függőségeket használni akarják, hogy kifejezetten deklarálják azokat. Ez azonban nem kényszeríti ezeket a függőségeket egy olyan projektbe, amelyre nincs szükségük.

3. Hogyan kell használni

Amint látni fogjuk, felvehetjük a értékű elem igaz hogy bármely Maven-függőség opcionális legyen.

Tegyük fel, hogy a következő projekt-pom van:

 ... project-with-optionals ... com.baeldung optional-project 0.0.1-SNAPSHOT true 

Ebben a példában bár opcionális projekt opcionális címkével van ellátva, továbbra is a projekt opcióval mintha a tag soha nem volt ott.

Annak érdekében, hogy lássuk a tag, létre kell hoznunk egy új projektet, amely függ projekt-opcióval:

 ... main-project ... com.baeldung project-with-optionals 0.0.1-SNAPSHOT 

Most, ha megpróbálunk hivatkozni opcionális projekt belülről főprojekt, ezt látjuk opcionális projekt nem létezik. Ez azért van, mert a címke megakadályozza, hogy átmenetileg szerepeljen benne.

Ha úgy találjuk, hogy szükségünk van rá opcionális projekt miénkben főprojekt, egyszerűen csak függőségnek kell nyilvánítanunk.

4. Következtetés

Ebben a cikkben Mavenét néztük meg címke. A címke használatának fő előnyei, hogy csökkentheti a projekt méretét, és megelőzheti a verziókonfliktusokat. Azt is láttuk, hogy a címke nem érinti az azt használó projektet.

A cikk forráskódja a Github oldalon érhető el.