Maven Deploy to Nexus
1. Prehľad
V predchádzajúcom článku som pojednával o tom, ako môže projekt Maven lokálne nainštalovať nádobu tretej strany, ktorá ešte nebola nasadená na serveri Maven Central (alebo na ktoromkoľvek z ďalších veľkých a verejne hostených úložísk).
Toto riešenie by sa malo uplatniť iba v malých projektoch, kde môže byť nadmerná inštalácia, prevádzka a údržba úplného servera Nexus. Ako však projekt rastie,
Nexus sa rýchlo stáva jedinou skutočnou a zrelou voľbou pre hosťovanie artefaktov tretích strán, ako aj pre opätovné použitie interných artefaktov naprieč vývojovými prúdmi.
Tento článok ukáže, ako nasadiť artefakty projektu do Nexusu s Mavenom.
2. Požiadavky na spojitosť v pom.xml
Aby mohol Maven nasadiť artefakty, ktoré vytvára v balíček fázy budovania, je potrebné definovať informácie o úložisku, kde budú zabalené artefakty nasadené, prostredníctvom distribúciaManažment element: Hostený, verejný Momentky úložisko vychádza z krabice na zariadení Nexus, takže už nie je potrebné nič ďalej vytvárať ani konfigurovať. Nexus uľahčuje určenie adries URL hostených úložísk - každé úložisko zobrazuje presný záznam, ktorý sa má pridať do projektu pom, pod Zhrnutie tab. V predvolenom nastavení Maven manipuluje s mechanizmom nasadenia prostredníctvom maven-deploy-plugin - toto je namapované na nasadenie fáza predvoleného životného cyklu Maven: The maven-deploy-plugin je životaschopná možnosť na zvládnutie úlohy nasadenia na artefakty projektu do zariadenia Nexus, ale nebola postavená tak, aby plne využívala výhody toho, čo ponúka Nexus. Z tohto dôvodu Sonatype vytvoril doplnok pre Nexus - nexus-staging-maven-plugin - ktorý je v skutočnosti navrhnutý tak, aby plne využíval výhody pokročilejšej funkcie, ktorú Nexus ponúka - funkcií, ako je napríklad fázovanie. Aj keď pre jednoduchý proces nasadenia nevyžadujeme funkcionalitu fázovania, s týmto vlastným doplnkom Nexus pôjdeme vpred, pretože bol zostavený s jasným účelom dobre komunikovať s Nexusom. Jediný dôvod, prečo používať maven-deploy-plugin je ponechať otvorenú možnosť použitia alternatívy k Nexusu v budúcnosti - napríklad úložiska Artifactory. Avšak na rozdiel od iných komponentov, ktoré sa môžu skutočne meniť počas celého životného cyklu projektu, je veľmi nepravdepodobné, že by sa správca úložiska Maven zmenil, takže nie je potrebná flexibilita. Prvým krokom pri používaní iného doplnku nasadenia vo fáze nasadenia je teda zakázanie existujúceho predvoleného mapovania: Teraz môžeme definovať: The nasadiť cieľ doplnku je mapovaný na nasadiť fáza stavby Maven. Všimnite si tiež, že, ako už bolo spomenuté, pri jednoduchom nasadení systému Windows nepotrebujeme funkčnosť -SNAPSHOT artefakty do zariadenia Nexus, takže je to úplne zakázané prostredníctvom element. Cieľ nasadenia predvolene zahŕňa postupný pracovný tok, ktorý sa odporúča pre zostavenia vydaní. Nasadenie do zariadenia Nexus je a zabezpečená prevádzka - a a nasadenie používateľ existuje na tento účel po vybalení z krabice v ktorejkoľvek inštancii zariadenia Nexus. Konfigurácia Maven s povereniami tohto nasadenie používateľa, aby mohol správne komunikovať so zariadením Nexus, nie je možné vykonať v priečinku pom.xml projektu. Je to tak preto, lebo syntax súboru pom to neumožňuje, nehovoriac o tom, že pom môže byť verejným artefaktom, takže nie je vhodný na uchovávanie informácií o poverení. Poverenia servera musia byť definované v globálnom Mavene nastavenie.xml: Server možno tiež nakonfigurovať tak, aby používal zabezpečenie založené na kľúčoch namiesto nespracovaných a holých textových údajov. Vykonanie procesu nasadenia je jednoduchá úloha: Vynechanie testov je v kontexte úlohy nasadenia v poriadku, pretože táto úloha by mala byť poslednou úlohou z a potrubie nasadenia pre projekt. Bežným príkladom takého potrubia nasadenia by mohla byť postupnosť Jenkinsových úloh, z ktorých každá spustí ďalšiu iba v prípade, že sa úspešne dokončí. Z tohto dôvodu je zodpovednosťou predchádzajúcich úloh v potrubí spustiť všetky testovacie balíčky z projektu - v čase, keď bude spustená úloha nasadenia, všetky testy by už mali prejsť. Ak bol spustený jeden príkaz, potom môžu byť testy aktívne, aby boli spustené pred nasadenie fáza vykoná: Toto je jednoduché, ale vysoko efektívne riešenie nasadenia artefaktov Maven do zariadenia Nexus. Je to do istej miery aj názorové - nexus-staging-maven-plugin sa použije namiesto predvoleného maven-deploy-plugin; funkčnosť plánovania je zakázaná atď. - práve tieto voľby robia riešenie jednoduchým a praktickým. Potenciálna aktivácia funkcie úplného stagingu môže byť predmetom budúceho článku. Nakoniec sa budeme zaoberať procesom vydania v nasledujúcom článku. nexus-snapshots // localhost: 8081 / nexus / content / repositories / snapshots
3. Pluginy
maven-deploy-plugin 2.8.1 default-deploy nasadiť nasadiť
org.apache.maven.plugins maven-deploy-plugin $ {maven-deploy-plugin.version} pravda
org.sonatype.plugins nexus-staging-maven-plugin 1.5.1 default-deploy nasadiť nasadiť nexus // localhost: 8081 / nexus / true
4. Globálne nastavenia.xml
nasadenie snímok spojenia the_pass_for_the_deployment_user
5. Proces nasadenia
mvn clean deploy -Dmaven.test.skip = true
mvn čisté nasadenie
6. Záver