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.