Helyezze be a helyi edényt a Maven segítségével

1. A probléma és az opciók

A Maven nagyon sokoldalú eszköz, és elérhető nyilvános adattárai felülmúlhatatlanok. Azonban mindig lesz olyan műtárgy, amelyik akár sehol sem látják vendégül, vagy a tárhely, ahol tárolva van, kockázatos függeni, mivel lehet, hogy nincs fent, amikor szüksége van rá.

Amikor ez megtörténik, van néhány választási lehetőség:

  • harapd meg a golyót, és telepíts egy teljes értékű adattárkezelés megoldás, például a Nexus
  • próbálja meg feltölteni a műtárgyat egy tekintélyesebb nyilvános tárházba
  • telepítse a műtárgyat helyileg maven plugin segítségével

Kapcsolat természetesen az érettebb megoldás, de az is annál összetettebb. Egy példány létrehozása a Nexus futtatásához, maga a Nexus beállítása, konfigurálása és karbantartása túlzott lehet egy olyan egyszerű probléma esetén, mint például egyetlen edény használata. Ha ez a forgatókönyv - az egyedi műtárgyak tárolása - gyakori, a tárházkezelőnek sok értelme van.

A műtárgy feltöltése nyilvános adattár vagy a Maven központjában szintén jó megoldás, de általában hosszadalmas. Ezenkívül előfordulhat, hogy a könyvtár egyáltalán nincs engedélyezve a Maven-ben, ami sokkal megnehezíti a folyamatot, így nem reális megoldás arra, hogy MOST felhasználhassuk az ereklyét.

Ez megmarad a harmadik lehetőségről - az artefaktum hozzáadása a forrás vezérléséhez és a maven plugin használatához - ebben az esetben a maven-install-plugin telepítse helyben, mielőtt a build folyamatnak szüksége lenne rá. Ez messze a legkönnyebb és legmegbízhatóbb lehetőség.

2. Helyezze be a Helyi edényt a m-melaven-install-plugin

Kezdjük azzal a teljes konfigurációval, amely szükséges a műtárgy telepítéséhez a helyi adattárunkba:

 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 

Most bontsuk le és elemezzük a konfiguráció részleteit.

2.1. Az Artefact információ

Az Artefact Information a elem. A tényleges szintaxis nagyon hasonló a függőség deklarálásához - a groupId, artefactId és változat elemek.

A konfiguráció következő része megköveteli a csomagolás a műtárgy - ez a következő befőttes üveg.

Ezután meg kell adnunk a elhelyezkedés a tényleges telepítendő jar fájlból - ez lehet abszolút fájl elérési út vagy relatív, a Mavenben elérhető ingatlanok. Ebben az esetben a $ {basedir} tulajdonság jelenti a projekt gyökerét, nevezetesen azt a helyet, ahol a pom.xml A fájl létezik. Ez azt jelenti, hogy a someartifact-1.0.jar fájlt kell elhelyezni a / függőségek / könyvtárat a gyökér alatt.

Végül számos további opcionális részlet is konfigurálható.

2.2. A végrehajtás

A. Végrehajtása install-file cél kötődik a érvényesít fázis a szokásos Maven build életciklustól. Mint ilyen, a fordítás megkísérlése előtt kifejezetten le kell futtatnia az ellenőrzési fázist:

mvn érvényesítés

Ezt a lépést követően a szabványos összeállítás működik:

mvn tiszta telepítés

Amint a fordítási szakasz végrehajtódik, a mi someartifact-1.0.jar helyesen van telepítve a helyi adattárunkba, csakúgy, mint bármely más műtárgy, amelyet esetleg magáról a Maven centralról szereztek be.

2.3. A. Generálása POM vs A POM

Az a kérdés, hogy szükségünk van-e a pom.xml A műtárgy fájlja vagy sem, főleg a futásidejű függőségek maga a műtárgy. Egyszerűen fogalmazva, ha a műtárgy futásidejű függőséggel rendelkezik más edényektől, akkor ezeknek az üvegeknek jelen kell lenniük az osztályúton futás közben is. Egy egyszerű artefaktussal, amely nem okozhat problémát, mivel valószínűleg nem lesz függősége futás közben (levél a függőségi grafikonon).

A generálniPom opció a install-file a célnak elegendőnek kell lennie az ilyen jellegű leletekhez:

igaz

Azonban, ha a mű összetettebb és nem triviális függőségek, akkor, ha ezek a függőségek még nem szerepelnek az osztályban, hozzá kell adni őket. Ennek egyik módja az, hogy manuálisan definiálja ezeket az új függőségeket a projekt pom fájljában. Jobb megoldás az, ha megrendelést biztosítunk pom.xml fájl a telepített artefaktummal együtt:

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

Ez lehetővé teszi Maven számára, hogy megoldja az ebben a szokásban meghatározott műtárgy összes függőségét pom.xml, anélkül, hogy manuálisan kellene definiálni őket a projekt fő pom fájljában.

3. Következtetés

Ez a cikk áttekinti, hogyan lehet egy Maven projekten belül sehol sem tárolt edényt helyileg a maven-install-plugin.