Instalirajte lokalnu staklenku s Mavenom

1. Problem i mogućnosti

Maven je vrlo svestran alat i njegova dostupna javna spremišta su bez premca. Međutim, uvijek će postojati artefakt koji je bilo koji nigdje nije domaćinili o spremištu u kojem se nalazi rizično je ovisiti, jer možda neće biti gore kad vam zatreba.

Kad se to dogodi, postoji nekoliko izbora:

  • ugrizite metak i instalirajte punopravnog upravljanje spremištem rješenje kao što je Nexus
  • pokušajte umetnuti artefakt u jedno od uglednijih javnih spremišta
  • instalirajte artefakt lokalno pomoću dodatka maven

Nexus je naravno zrelije rješenje, ali također je složeniji. Osiguravanje instance za pokretanje Nexusa, postavljanje samog Nexusa, njegovo konfiguriranje i održavanje mogu biti pretjerani za tako jednostavan problem kao što je korištenje jedne staklenke. Ako je ovaj scenarij - hosting prilagođenih artefakata - uobičajen, upravitelj spremišta ima puno smisla.

Preuzimanje artefakta u javno spremište ili u Mavenu izravno također je dobro rješenje, ali obično dugotrajno. Uz to, knjižnica možda uopće nije omogućena Mavenom, što postupak čini puno težim, pa nije realno rješenje mogućnosti korištenja artefakta ODMAH.

To ostavlja treću opciju - dodavanje artefakta u kontrolu izvora i korištenje dodatka maven - u ovom slučaju dodatak maven-install-na instalirajte ga lokalno prije nego što je potreban postupak gradnje. Ovo je daleko najlakša i najpouzdanija dostupna opcija.

2. Instalirajte Local Jar s maven-install-plugin

Počnimo s punom konfiguracijom potrebnom za instaliranje artefakta u naše lokalno spremište:

 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 

Sada, hajde da raščlanimo i analiziramo detalje ove konfiguracije.

2.1. Podaci o artefaktu

Podaci o artefaktu definirani su kao dio element. Stvarna sintaksa vrlo je slična proglašenju ovisnosti - a groupId, artefaktId i verzija elementi.

Sljedeći dio konfiguracije zahtijeva definiranje ambalaža artefakta - ovo je određeno kao staklenka.

Dalje, moramo pružiti mjesto stvarne jar datoteke koju treba instalirati - to može biti apsolutni put do datoteke ili može biti relativan, koristeći nekretnine dostupne u Mavenu. U ovom slučaju, $ {basedir} svojstvo predstavlja korijen projekta, odnosno mjesto na kojem je pom.xml dokument postoji. To znači da nekiartefakt-1.0.jar datoteku treba smjestiti u / ovisnosti / direktorij ispod korijena.

Napokon, postoji još nekoliko dodatnih podataka koji se također mogu konfigurirati.

2.2. Ovrha

Izvršenje instalacijska datoteka cilj je vezan za potvrditi faza iz standardnog životnog ciklusa Maven gradnje. Kao takav, prije pokušaja kompajliranja - morat ćete izričito pokrenuti fazu provjere valjanosti:

mvn potvrditi

Nakon ovog koraka funkcionirat će standardna kompilacija:

mvn čista instalacija

Jednom kada se faza kompajliranja izvrši, naša nekiartefakt-1.0.jar je ispravno instaliran u naše lokalno spremište, baš kao i bilo koji drugi artefakt koji je možda dohvaćen iz samog centra Maven.

2.3. Stvaranje a POM vs Opskrba POM

Pitanje trebamo li dostaviti a pom.xml datoteka za artefakt ili ne ovisi uglavnom o runtime ovisnosti samog artefakta. Jednostavno rečeno, ako artefakt ovisi o vremenu izvođenja u drugim staklenkama, te će posude morati biti prisutne na razrednoj stazi u vrijeme izvođenja. S jednostavnim artefaktom koji ne bi trebao predstavljati problem, jer vjerojatno neće imati ovisnosti tijekom izvođenja (list na grafikonu ovisnosti).

The generiratiPom opcija u instalacijska datoteka cilj bi trebao biti dovoljan za ove vrste artefakata:

pravi

Međutim, ako je artefakt složeniji i ne-trivijalan ovisnosti, onda, ako ove ovisnosti nisu već u stazi razreda, moraju se dodati. Jedan od načina to je ručnim definiranjem novih ovisnosti u pom datoteci projekta. Bolje rješenje je pružiti običaj pom.xml datoteka zajedno s instaliranim artefaktom:

lažno $ {basedir} /dependencies/someartifact-1.0.pom

To će Mavenu omogućiti da riješi sve ovisnosti artefakta definirane u ovom običaju pom.xml, bez potrebe da ih definirate ručno u glavnoj pom datoteci projekta.

3. Zaključak

Ovaj članak govori o tome kako koristiti jar koji nije smješten nigdje u Maven projektu instaliranjem lokalno s maven-install-plugin.


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