Maven Telepítse a Nexusba

1. Áttekintés

Egy korábbi cikkemben megvitattam, hogy egy Maven projekt hogyan tud helyileg telepíteni egy harmadik fél jar-t, amelyet még nem telepítettek a Maven Central-ra (vagy bármely más nagy és nyilvánosan tárolt adattárra).

Ezt a megoldást csak olyan kis projektekben szabad alkalmazni, amelyekben a teljes Nexus szerver telepítése, futtatása és karbantartása túlteljes lehet. A projekt növekedésével azonban

A Nexus gyorsan az egyetlen valódi és kiforrott lehetőség harmadik fél műtermékeinek tárolására, valamint a belső leletek újrafelhasználására a fejlesztési folyamatokban.

Ez a cikk bemutatja, hogyan telepítheti a projekt leleteit Nexusnak, Mavennel.

2. Nexus követelmények a pom.xml

Annak érdekében, hogy Maven telepíthesse az általa létrehozott tárgyakat a csomag A build fázisának meg kell határoznia a repository információkat, ahol a csomagolt műtermékeket a terjesztésMenedzsment elem:

  nexus-snapshots // localhost: 8081 / nexus / content / repositories / pillanatképek 

Házigazda, nyilvános Pillanatképek a tár a Nexus dobozából kerül ki, így nincs szükség semmilyen további létrehozásra vagy konfigurálásra. A Nexus megkönnyíti a tárolt tárhelyek URL-jének meghatározását - mindegyik tároló pontosan megjeleníti a projekt pom, a Összegzés fülre.

3. Bővítmények

Alapértelmezés szerint Maven a telepítési mechanizmust a maven-deploy-plugin - ez leképezve a bevetés az alapértelmezett Maven életciklus fázisa:

 maven-deploy-plugin 2.8.1 alapértelmezett telepítés üzembe helyezés 

A maven-deploy-plugin életképes lehetőség a projekt Nexus műtárgyaiba történő telepítésének kezelésére, de nem úgy készült, hogy teljes mértékben kihasználja a Nexus kínálatát. Emiatt a Sonatype létrehozott egy Nexus-specifikus bővítményt - a nexus-staging-maven-plugin - amelyet valójában a Nexus által kínált fejlettebb funkciók teljes körű kihasználására terveztek - például a színpadra állítást.

Bár egy egyszerű telepítési folyamathoz nincs szükségünk átmeneti funkcionalitásra, tovább fogunk menni ezzel az egyedi Nexus bővítménnyel, mivel annak egyértelmű célja az volt, hogy jól beszéljen a Nexusszal.

Az egyetlen ok a maven-deploy-plugin az, hogy továbbra is nyitva tartsuk a Nexus alternatívájának használatát - például egy Artifactory adattárat. Ugyanakkor más komponensektől eltérően, amelyek valóban megváltozhatnak a projekt teljes életciklusa alatt, a Maven Repository Manager valószínűleg nem fog megváltozni, ezért nincs szükség rugalmasságra.

Tehát a telepítési fázisban egy másik telepítési bővítmény használatának első lépése a meglévő alapértelmezett leképezés letiltása:

 org.apache.maven.plugins maven-deploy-plugin $ {maven-deploy-plugin.version} true 

Most meghatározhatjuk:

 org.sonatype.plugins nexus-staging-maven-plugin 1.5.1 alapértelmezett telepítés üzembe helyezése nexus // localhost: 8081 / nexus / true 

A bevetni A plugin célja a bevetni szakasza a Maven felépítésének.

Vegye figyelembe azt is, hogy amint arról már volt szó, nincs szükségünk átmeneti funkcionalitásra a -PILLANATKÉP artefaktumok a Nexushoz, így a elem.

Alapértelmezés szerint az üzembe helyezési cél tartalmazza az átmeneti munkafolyamatot, amely a kiadás buildjeihez ajánlott.

4. A globális settings.xml

A Nexusba történő bevezetés a biztosított működés - és a bevetés A felhasználó létezik erre a célra a dobozon kívül bármely Nexus példányon.

Maven konfigurálása ennek hitelesítő adataival bevetés hogy a Nexusszal helyesen tudjon interakcióba lépni, nem lehet a pom.xml a projektről. Ennek oka, hogy a pom nem engedi, nem beszélve arról a tényről, hogy a pom lehet nyilvános műtárgy, ezért nem alkalmas a hitelesítő adatok tárolására.

A szerver hitelesítő adatait a globális Maven-ben kell meghatározni beállítás.xml:

  nexus-snapshots a_elosztási_felhasználó_alkalmazás telepítése 

A kiszolgáló úgy is konfigurálható, hogy kulcsalapú biztonságot használjon a nyers és a sima szövegű hitelesítő adatok helyett.

5. A telepítési folyamat

A telepítési folyamat végrehajtása egyszerű feladat:

mvn tiszta telepítés -Dmaven.test.skip = true

A tesztek átugrása rendben van egy központi telepítési feladat esetén, mert ennek a feladatnak kell lennie az utolsó feladatnak a telepítési csővezeték a projekt számára.

Az ilyen telepítési folyamat általános példája a Jenkins-feladatok sorozata, amelyek mindegyike csak akkor váltja ki a következőt, ha sikeresen befejeződik. Mint ilyen, a folyamatban lévő előző feladatok feladata, hogy a projekt összes tesztcsomagját futtassák - mire a telepítési feladat lefut, az összes tesztnek már át kell esnie.

Ha egyetlen parancsot futtatott, akkor a tesztek aktívak maradhatnak a bevetés szakasz végrehajtja:

mvn tiszta telepítés

6. Következtetés

Ez egy egyszerű, ugyanakkor rendkívül hatékony megoldás a Maven-műtárgyak Nexus-ra történő telepítésére.

Némileg véleményes is - nexus-staging-maven-plugin az alapértelmezett helyett maven-deploy-plugin; a staging funkció le van tiltva stb. - ezek a választások teszik egyszerűvé és praktikussá a megoldást.

A teljes átmeneti funkcionalitás potenciális aktiválása egy későbbi cikk témája lehet.

Végül a következő cikkben tárgyaljuk a kiadási folyamatot.


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