Izdanje Mavena za Nexus

1. Pregled

U prethodnom članku ove serije postavili smo a proces implementacije s Mavenom na Nexus. U ovom ćemo članku konfigurirati Postupak izdavanja s Mavenom - oboje u pom projekta kao i na Jenkinsovom poslu.

2. Spremište u pom

Da bi Maven mogao preći na Nexus Repository Server, moramo definirati spremište informacije putem distribucijaUpravljanje element:

  nexus-izdanja // localhost: 8081 / nexus / content / repozitoriji / izdanja 

Hostirano spremište izdanja izlazi iz okvira na Nexusu, pa ga nema potrebe izričito izrađivati.

3. SCM u Mavenu pom

Proces izdavanja komunicirat će s kontrolom izvora projekta - to znači da prvo moramo definirati element u našem pom.xml:

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

Ili, koristeći git protokol:

 scm: git: [zaštićen e-poštom]: user / project.git scm: git: [zaštićen e-poštom]: user / project.git scm: git: [zaštićen e-poštom]: user / project.git 

4. Dodatak za izdanje

Standardni dodatak Maven koji se koristi u procesu izdavanja je maven-release-plugin - konfiguracija ovog dodatka je minimalna:

 org.apache.maven.plugins maven-release-plugin 2.4.2 [zaštićena e-poštom] {project.version} istinita izdanja 

Ovdje je važno da releaseProfili konfiguracija će zapravo prisiliti Maven profil - izdanja profil - da biste postali aktivni tijekom postupka puštanja.

U tom je procesu dodatak za nexus-staging-maven koristi se za izvršavanje postavljanja na nexus-izdanja Spremište Nexus:

  izdanja org.sonatype.plugins nexus-staging-maven-plugin 1.5.1 default-deploy raspored implementacija nexus-releases // localhost: 8081 / nexus / true 

Dodatak je konfiguriran za izvođenje postupka izdavanja bez mehanizma za inscenaciju, isto kao i prije, za postupak implementacije (skipStaging = true).

I također sličan procesu implementacije, Puštanje u Nexus sigurna je operacija - pa ćemo koristiti Out of the Box raspoređivanje ponovno obrazac korisnika Nexus.

Također moramo konfigurirati vjerodajnice za nexus-izdanja poslužitelj u globalnom postavke.xml (% USER_HOME% /. M2 / settings.xml):

  nexus-izdanja postavljanje_prolaz_za_korisnika_depolovanja 

Ovo je potpuna konfiguracija

5. Postupak oslobađanja

Razdvojimo postupak izdavanja na male i usmjerene korake. Izvodimo izdanje kada je trenutna verzija projekta SNAPSHOT verzija - recimo 0,1-SNAPSHOT.

5.1. Puštanje: Clean

Čišćenje izdanja htjeti:

  • izbriši deskriptor izdanja (puštanje.svojstva)
  • izbrišite sve sigurnosne kopije POM datoteka

5.2. puštanje: pripremiti

Sljedeći dio postupka puštanja je Priprema izdanja; ovo će:

  • izvršite neke provjere - ne bi trebalo biti neizvršenih promjena, a projekt bi trebao ovisiti o neovisnosti SNAPSHOT-a
  • promijenite verziju projekta u pom datoteci na puni broj izdanja (uklonite SNAPSHOT sufiks) - u našem primjeru - 0.1
  • voditi projekt test apartmani
  • obvezati i potaknuti promjene
  • stvoriti označiti iz ovog ne-SNAPSHOT verzijskog koda
  • povećati verziju projekta u pom - u našem primjeru - 0,2-SNAPSHOT
  • obvezati i potaknuti promjene

5.3. puštanje: izvesti

Potonji dio postupka oslobađanja je Izvođenje izdanja; ovo će:

  • oznaka izdanja za plaćanje iz SCM-a
  • izgraditi i implementirati objavljeni kod

Ovaj drugi korak procesa oslanja se na rezultat koraka Pripreme - puštanje.svojstva.

6. Na Jenkinsa

Jenkins može izvesti postupak izdavanja na jedan od dva načina - može koristiti vlastite dodatke za izdanje ili može jednostavno pokrenuti izvođenje izdanja sa standardnim maven poslom koji pokreće ispravne korake izdanja.

Postojeći Jenkins dodaci usredotočeni na postupak izdavanja su:

  • Otpustite dodatak
  • Dodatak za izdanje M2

Međutim, budući da je naredba Maven za izvođenje izdanja dovoljno jednostavna, možemo jednostavno definirati standardni Jenkinsov posao za izvođenje operacije - dodaci nisu potrebni.

Dakle, za novi Jenkinsov posao (Izradite maven2 / 3 projekt) - definirat ćemo 2 parametra niza: releaseVersion = 0,1 i developmentVersion = 0,2-SNAPSHOT.

Na Izgraditi odjeljak za konfiguraciju, jednostavno možemo konfigurirati sljedeću Mavenovu naredbu za pokretanje:

Izdanje: Čisto izdanje: pripremite izdanje: izvedite -DreleaseVersion = $ {releaseVersion} -DdevelopmentVersion = $ {developmentVersion}

Prilikom izvođenja parametriziranog posla, Jenkins će zatražiti od korisnika da navede vrijednosti za te parametre - tako da svaki put kada pokrenemo posao trebamo ispuniti prave vrijednosti za releaseVersion i razvojVersija.

Također, vrijedi koristiti dodatak za čišćenje radnog prostora i provjeriti Izbrišite radni prostor prije početka gradnje opcija za ovu izgradnju. No imajte na umu da izvoditi korak Oslobađanja nužno treba izvoditi ista naredba kao i pripremitikorak - to je zato što ovo drugo izvoditi korak će koristiti puštanje.svojstva datoteku izradio pripremiti. To znači da ne možemo pokretati posao Jenkinsa pripremitia drugo trčanje izvoditi.

7. Zaključak

Ovaj je članak pokazao kako implementirati proces Objavljivanje projekta Maven sa ili bez Jenkinsa. Slično kao u implementaciji, i ovaj postupak koristi dodatak za nexus-staging-maven za interakciju s Nexusom i usredotočuje se na git projekt.