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.