Vydanie Maven do zariadenia Nexus

1. Prehľad

V predchádzajúcom článku tejto série sme nastavili a proces nasadenia od Maven po Nexus. V tomto článku nakonfigurujeme Uvoľňovací proces s Maven - obaja v pom projektu, ako aj v Jenkinsovej práci.

2. Úložisko v pom

Aby mohol byť Maven schopný uvoľniť sa na server Nexus Repository, musíme definovať úložisko informácie prostredníctvom distribúciaManažment element:

  nexus-releases // localhost: 8081 / nexus / content / repositories / releases 

Hostené úložisko vydaní vychádza z balíka Nexus, takže ho nie je potrebné vytvárať výslovne.

3. SCM v Maven pom

Proces vydania bude interagovať s kontrolou zdrojov projektu - to znamená, že najskôr musíme definovať prvok v našom pom.xml:

 scm: git: //github.com/user/project.git //github.com/user/project scm: git: //github.com/user/project.git 

Alebo pomocou protokolu git:

 scm: git: [chránený e-mailom]: používateľ / projekt.git scm: git: [chránený e-mailom]: používateľ / projekt.git scm: git: [chránený e-mailom]: používateľ / projekt.git 

4. Release Plugin

Štandardný plugin Maven používaný procesom vydania je maven-release-plugin - konfigurácia tohto pluginu je minimálna:

 org.apache.maven.plugins maven-release-plugin 2.4.2 [chránený e-mailom] {project.version} skutočné vydania 

Tu je dôležité, aby releaseProfiles konfigurácia skutočne vynúti profil Maven - správy profil - aby sa stal aktívnym počas procesu vydania.

Práve v tomto procese nexus-staging-maven-plugin sa používa na vykonávanie nasadenia do vydania spojok Úložisko Nexus:

  vydáva org.sonatype.plugins nexus-staging-maven-plugin 1.5.1 default-deploy nasadiť nasadiť nexus-releases // localhost: 8081 / nexus / true 

Plugin je nakonfigurovaný na vykonávanie procesu vydania bez postupného mechanizmu, rovnako ako predtým, pre proces nasadenia (skipStaging = true).

A podobne ako proces nasadenia, Uvoľnenie pre Nexus je zabezpečená operácia - takže použijeme Out of the Box nasadenie používateľ Nexus.

Musíme tiež nakonfigurovať poverenia pre vydania spojok server v globálnom meradle nastavenia.xml (% USER_HOME% / .m2 / settings.xml):

  nasadenie vydaní nexus the_pass_for_the_deployment_user 

Toto je úplná konfigurácia

5. Proces vydania

Rozdeľme proces vydania na malé a sústredené kroky. Vydanie vykonávame, keď je aktuálna verzia projektu verzia SNAPSHOT - povedzme 0,1-SNAPSHOT.

5.1. Uvoľnenie: Čisté

Čistenie uvoľňovača bude:

  • vymazať deskriptor vydania (vydanie.vlastnosti)
  • odstrániť všetky záložné súbory POM

5.2. uvoľnenie: pripraviť

Ďalšou časťou procesu vydania je Príprava vydania; toto bude:

  • vykonajte nejaké kontroly - nemali by sa vyskytnúť žiadne nezáväzné zmeny a projekt by mal závisieť od žiadnych závislostí SNAPSHOT
  • zmeňte verziu projektu v súbore pom na celé číslo vydania (odstráňte príponu SNAPSHOT) - v našom príklade - 0.1
  • spustiť projekt test apartmány
  • zaviazať a presadiť zmeny
  • vytvoriť značka z tohto kódu bez verzie SNAPSHOT
  • zväčšiť verziu projektu v pom - v našom príklade - 0,2-SNAPSHOT
  • zaviazať a presadiť zmeny

5.3. uvoľnenie: vykonať

Druhá časť procesu vydania je Uvoľnenie; toto bude:

  • značka uvoľnenia z pokladne od SCM
  • zostaviť a nasadiť uvoľnený kód

Tento druhý krok procesu sa spolieha na výstup z kroku Príprava - vydanie.vlastnosti.

6. Na Jenkinsovi

Jenkins môže vykonať proces vydania jedným z dvoch spôsobov - môže buď použiť svoje vlastné vydávacie doplnky, alebo môže jednoducho spustiť vykonanie vydania so štandardnou úlohou maven, ktorá vykoná správne kroky vydania.

Existujúce doplnky Jenkins zamerané na proces vydania sú:

  • Uvoľnite doplnok
  • Uvoľňovací doplnok M2

Pretože príkaz Maven na vykonanie vydania je dosť jednoduchý, môžeme na vykonanie operácie jednoducho definovať štandardnú úlohu Jenkinsa - nie sú potrebné žiadne doplnky.

Takže pre novú úlohu Jenkinsa (Vytvorenie projektu maven2 / 3) - definujeme 2 reťazcové parametre: releaseVersion = 0,1 a developmentVersion = 0,2-SNAPSHOT.

Na Stavať konfiguračnej časti, môžeme jednoducho nakonfigurovať nasledujúci príkaz Maven, aby sa spúšťal:

Vydanie: Čisté vydanie: pripraviť vydanie: perform -DreleaseVersion = $ {releaseVersion} -DdevelopmentVersion = $ {developmentVersion}

Pri spustení parametrizovanej úlohy Jenkins vyzve používateľa, aby určil hodnoty pre tieto parametre - takže pri každom spustení úlohy musíme vyplniť správne hodnoty pre releaseVersion a vývojová verzia.

Tiež stojí za to použiť doplnok na vyčistenie pracovného priestoru a skontrolovať Pred začiatkom vytvárania odstráňte pracovný priestor možnosť pre toto zostavenie. Nezabudnite však, že hrať krok vydania by mal byť nevyhnutne spustený rovnakým príkazom ako pripraviťkrok - je to preto, lebo ten druhý hrať krok použije vydanie.vlastnosti súbor vytvorený používateľom pripraviť. To znamená, že nemôžeme spustiť Jenkinsovu prácu pripraviťa ďalší beh hrať.

7. Záver

Tento článok ukázal, ako implementovať proces Uvoľnenie projektu Maven s Jenkinsom alebo bez neho. Podobne ako v prípade nasadenia, aj tento proces využíva nexus-staging-maven-plugin komunikovať s Nexus a zameriava sa na projekt git.