Nainštalujte lokálnu nádobu s Maven

1. Problém a možnosti

Maven je veľmi všestranný nástroj a jeho dostupné verejné úložiská sú na špičkovej úrovni. Vždy však bude existovať artefakt, ktorý buď je nie je nikde hostený, alebo úložisko, kde je hostované, je riskantné závisieť, pretože nemusí byť hore, keď ho potrebujete.

Ak k tomu dôjde, existuje niekoľko možností:

  • uhryznite guľku a nainštalujte si plnohodnotný správa úložiska riešenie ako Nexus
  • pokúste sa načítať artefakt do jedného z viac renomovaných verejných úložísk
  • nainštalujte artefakt lokálne pomocou pluginu maven

Nexus je samozrejme vyspelejšie riešenie, ale je to tiež tým zložitejšia. Poskytnutie inštancie na spustenie zariadenia Nexus, nastavenie samotného zariadenia Nexus, jeho konfigurácia a údržba môžu byť pre taký jednoduchý problém, ako je použitie jedného pohára, zbytočné. Ak je tento scenár - hostenie vlastných artefaktov - bežný, správca úložiska má veľký zmysel.

Nahráva sa artefakt verejné úložisko alebo priamo v Maven central je tiež dobré riešenie, ale zvyčajne zdĺhavé. Okrem toho nemusí byť knižnica Maven povolená vôbec, čo robí tento proces oveľa zložitejším, takže nie je reálne riešenie možnosti artefaktu TERAZ použiť.

Zostáva tretia možnosť - pridanie artefaktu do riadenia zdroja a použitie pluginu maven - v tomto prípade maven-install-plugin na nainštalujte ho lokálne skôr, ako to vyžaduje proces vytvárania. Toto je zďaleka najjednoduchšia a najspoľahlivejšia možnosť, ktorá je k dispozícii.

2. Nainštalujte lokálnu nádobu pomocou maven-install-plugin

Začnime s úplnou konfiguráciou potrebnou na inštaláciu artefaktu do nášho miestneho úložiska:

 org.apache.maven.plugins maven-install-plugin 2.5.1 org.somegroup someartifact 1,0 jar $ {basedir} /dependencies/someartifact-1.0.jar true install-jar-lib install-file validate 

Teraz poďme rozobrať a analyzovať podrobnosti tejto konfigurácie.

2.1. Informácie o artefakte

Informácie o artefakte sú definované ako súčasť element. Skutočná syntax je veľmi podobná deklarovaniu závislosti - a groupId, artifactId a verzia prvkov.

Ďalšia časť konfigurácie vyžaduje definovanie balenie artefaktu - je zadaný ako jar.

Ďalej musíme poskytnúť umiestnenie skutočného súboru jar, ktorý sa má nainštalovať - ​​môže to byť absolútna cesta k súboru alebo to môže byť relatívne pomocou súboru nehnuteľnosti dostupné v Mavene. V takom prípade $ {basedir} Vlastnosť predstavuje koreň projektu, a to umiestnenie, kde pom.xml súbor existuje. To znamená, že someartifact-1.0.jar súbor je potrebné umiestniť do a / závislosti / adresár pod koreňom.

Nakoniec je možné nakonfigurovať aj niekoľko ďalších voliteľných podrobností.

2.2. Exekúcia

Poprava inštalačný súbor cieľ je viazaný na potvrdiť fáza zo štandardného životného cyklu zostavenia Maven. Pred pokusom o kompiláciu budete musieť explicitne spustiť fázu overovania:

mvn overiť

Po tomto kroku bude fungovať štandardná kompilácia:

mvn čistá inštalácia

Len čo sa vykoná fáza kompilácie, naša someartifact-1.0.jar je správne nainštalovaný v našom miestnom úložisku, rovnako ako akýkoľvek iný artefakt, ktorý sa mohol získať zo samotného centra Maven.

2.3. Generovanie a POM vs Zásobovanie POM

Otázka, či musíme dodávať a pom.xml súbor pre artefakt alebo nie, závisí hlavne na runtime závislosti samotného artefaktu. Jednoducho povedané, ak má artefakt runtime závislosti na iných téglikoch, tieto tégliky musia byť prítomné na triednej ceste aj za behu. S jednoduchým artefaktom, ktorý by nemal byť problémom, pretože za behu pravdepodobne nebude mať žiadne závislosti (list v grafe závislostí).

The generovaťPom možnosť v inštalačný súbor cieľ by mal stačiť pre tieto druhy artefaktov:

pravda

Ak je však artefakt zložitejší a má nepodstatný charakter závislostipotom, ak tieto závislosti ešte nie sú v triede, musia sa pridať. Jedným zo spôsobov, ako to dosiahnuť, je manuálna definícia týchto nových závislostí v súbore pom projektu. Lepším riešením je poskytnúť zvyk pom.xml súbor spolu s nainštalovaným artefaktom:

false $ {basedir} /dependencies/someartifact-1.0.pom

Umožní to Mavenovi vyriešiť všetky závislosti artefaktu definované v tomto zvyku pom.xml, bez toho, aby ste ich museli definovať manuálne v hlavnom súbore pom projektu.

3. Záver

Tento článok pojednáva o tom, ako používať nádobu, ktorá nie je nikde hostená v rámci projektu Maven, jej lokálnou inštaláciou pomocou maven-install-plugin.


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