Maven utgivelse til Nexus

1. Oversikt

I den forrige artikkelen i denne serien satte vi opp en distribusjonsprosess med Maven til Nexus. I denne artikkelen konfigurerer vi Utgivelsesprosess med Maven - begge i pom av prosjektet så vel som i en Jenkins-jobb.

2. Datalager i pom

For at Maven skal kunne frigjøre til en Nexus Repository Server, må vi definere depotet informasjon via distributionManagement element:

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

Hosted Releases Repository kommer ut av esken på Nexus, så det er ikke nødvendig å lage det eksplisitt.

3. SCM i Maven pom

Utgivelsesprosessen vil samhandle med Source Control for prosjektet - dette betyr at vi først må definere element i vår pom.xml:

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

Eller ved hjelp av git-protokollen:

 scm: git: [email protected]: user / project.git scm: git: [email protected]: user / project.git scm: git: [email protected]: user / project.git 

4. Utgivelsesprogrammet

Standard Maven-plugin som brukes av en utgivelsesprosess er maven-release-plugin - konfigurasjonen for dette pluginet er minimal:

 org.apache.maven.plugins maven-release-plugin 2.4.2 [email protected] {project.version} true releases 

Det som er viktig her er at releaseProfiles konfigurasjon vil faktisk tvinge en Maven-profil - utgivelser profil - for å bli aktiv under utgivelsesprosessen.

Det er i denne prosessen at nexus-staging-maven-plugin brukes til å utføre en distribusjon til nexus-utgivelser Nexus-arkiv:

  utgir org.sonatype.plugins nexus-staging-maven-plugin 1.5.1 standard-distribusjon distribuere distribuere nexus-utgivelser // localhost: 8081 / nexus / true 

Programtillegget er konfigurert til å utføre utgivelsesprosessen uten iscenesettelsesmekanismen, samme som tidligere, for distribusjonsprosessen (skipStaging = sant).

Og ligner også på distribusjonsprosessen, Å slippe til Nexus er en sikret operasjon - så vi skal bruke Out of the Box utplassering bruker skjema Nexus igjen.

Vi må også konfigurere legitimasjonen for nexus-utgivelser server i det globale settings.xml (% USER_HOME% /. M2 / settings.xml):

  nexus-utgivelser distribusjon_pass_for_deployment_user 

Dette er den fullstendige konfigurasjonen

5. Utgivelsesprosessen

La oss dele ut frigjøringsprosessen i små og fokuserte trinn. Vi utfører en utgivelse når den nåværende versjonen av prosjektet er en SNAPSHOT-versjon - si 0,1-STILLBILDE.

5.1. Utgivelse: Rengjør

Rengjøre en utgivelse vil:

  • slett utgivelsesbeskrivelsen (release.properties)
  • slett eventuelle POM-filer

5.2. utgivelse: forbered

Neste del av utgivelsesprosessen er Forbereder utgivelsen; dette vil:

  • utføre noen kontroller - det skal ikke være noen uforpliktende endringer, og prosjektet bør ikke avhenge av noen SNAPSHOT-avhengigheter
  • endre versjonen av prosjektet i pom-filen til et fullstendig utgivelsesnummer (fjern SNAPSHOT-suffikset) - i vårt eksempel - 0.1
  • kjøre prosjektet test suiter
  • begå og skyv endringene
  • lage stikkord ut av denne ikke-SNAPSHOT versjonskoden
  • øke versjonen av prosjektet i pom - i vårt eksempel - 0.2-STILLBILDE
  • begå og skyv endringene

5.3. utgivelse: utføre

Den siste delen av utgivelsesprosessen er Utfører utgivelsen; dette vil:

  • utgivelsesmerke for kassen fra SCM
  • bygge og distribuere utgitt kode

Dette andre trinnet i prosessen er avhengig av produksjonen fra Forbered trinnet - release.properties.

6. På Jenkins

Jenkins kan utføre utgivelsesprosessen på en av to måter - den kan enten bruke sine egne utgivelsesplugins, eller den kan ganske enkelt kjøre utfør utgivelsen med en standard maven-jobb som kjører de riktige utgivelsestrinnene.

De eksisterende Jenkins-pluginene som er fokusert på utgivelsesprosessen er:

  • Slipp plugin
  • M2 utgivelsesplugin

Men siden Maven-kommandoen for å utføre utgivelsen er enkel nok, kan vi ganske enkelt definere en standard Jenkins-jobb for å utføre operasjonen - ingen plugins er nødvendige.

Så for en ny Jenkins-jobb (Bygg et maven2 / 3-prosjekt) - definerer vi to strengparametere: releaseVersion = 0.1 og developmentVersion = 0.2-SNAPSHOT.

Bygge konfigurasjonsdelen, kan vi ganske enkelt konfigurere følgende Maven-kommando for å kjøre:

Utgivelse: Ren utgivelse: forbered utgivelse: utfør -DreleaseVersion = $ {releaseVersion} -DevelopmentVersion = $ {developmentVersion}

Når du kjører en parametrisert jobb, vil Jenkins be brukeren om å spesifisere verdier for disse parametrene - så hver gang vi kjører jobben, må vi fylle ut de riktige verdiene for releaseVersion og utviklingVersjon.

Det er også verdt å bruke Plugin for opprydding av arbeidsområdet og sjekk Slett arbeidsområdet før byggingen starter alternativ for denne bygningen. Men husk at utføre trinn i utgivelsen bør nødvendigvis kjøres med samme kommando som forberedetrinn - dette er fordi sistnevnte utføre trinn vil bruke release.properties fil opprettet av forberede. Dette betyr at vi ikke kan ha en Jenkins-jobb som kjører forberedeog en annen kjører utføre.

7. Konklusjon

Denne artikkelen viste hvordan du implementerer prosessen med Å gi ut et Maven-prosjekt med eller uten Jenkins. I likhet med distribusjon bruker denne prosessen nexus-staging-maven-plugin å samhandle med Nexus og fokuserer på et git-prosjekt.


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