Voliteľná závislosť v Maven

1. Prehľad

Tento krátky tutoriál popíše Maven značka a ako ju môžeme použiť na zmenšenie veľkosti a rozsahu artefaktu projektu Maven, napríklad WAR, EAR alebo JAR.

Ak sa chcete osviežiť na Mavene, pozrite si nášho komplexného sprievodcu.

2. Čo je ?

Niekedy vytvoríme projekt Maven, aby sme boli závislosťou od iných projektov Maven. Pri práci na takomto projekte môže byť potrebné zahrnúť jednu alebo viac závislostí, ktoré sú užitočné iba pre podmnožinu funkcií tohto projektu.

Ak koncový používateľ túto podmnožinu funkcií nepoužije, projekt tieto závislosti stále prechodne stiahne. To zbytočne nafukuje veľkosť projektu používateľa a môže dokonca zaviesť konfliktné verzie závislostí s inými závislosťami od projektu.

V ideálnom prípade by sme mali rozdeliť podmnožinu funkcií projektu do vlastného modulu, a teda neznečisťovať zvyšok projektu. To však nie je vždy praktické.

Aby sme vylúčili tieto špeciálne závislosti z hlavného projektu, môžeme použiť Maven's označte ich. To prinúti každého používateľa, ktorý chce tieto závislosti použiť, aby ich výslovne deklaroval. Nenúti však tieto závislosti do projektu, ktorý ich nepotrebuje.

3. Ako používať

Ako uvidíme, môžeme zahrnúť prvok s hodnotou pravda aby bola akákoľvek závislosť od Maven voliteľná.

Predpokladajme, že máme nasledujúci projekt pom:

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

V tomto príklade však voliteľný-projekt je označený ako voliteľný, zostáva ako použiteľná závislosť projekt s voliteľnými položkami akoby značka tam nikdy nebola.

Aby bolo možné vidieť účinok tag, musíme vytvoriť nový projekt, na ktorom záleží projekt s voliteľnými položkami:

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

Teraz, keď sa pokúsime odkazovať voliteľný-projekt zvnútra hlavný projekt, vidíme to voliteľný-projekt neexistuje. Je to preto, lebo značka zabráni jej prechodnému zahrnutiu.

Ak zistíme, že to potrebujeme voliteľný-projekt v našom hlavný projekt, jednoducho to musíme vyhlásiť za závislosť.

4. Záver

V tomto článku sme sa pozreli na Mavenovu značka. Hlavnými výhodami používania značky je, že môže zmenšiť veľkosť projektu a zabrániť konfliktom verzií. Tiež sme videli, že značka nemá vplyv na projekt, ktorý ju používa.

Zdrojový kód v tomto článku je k dispozícii na stránkach Github.


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