Vodič za Maven profile

1. Pregled

Maven profili mogu se koristiti za stvaranje prilagođenih konfiguracija izrade, poput ciljanja razine granulacije testa ili određenog okruženja za implementaciju.

U ovom uputstvu naučit ćemo kako raditi s Maven profilima.

2. Osnovni primjer

Normalno, redovno kad trčimo mvn paket, izvršavaju se jedinični testovi također. Ali što ako želimo na brzinu spakirati artefakt i pokrenuti ga da vidim radi li?

Prvo ćemo stvoriti ne-testovi profil koji postavlja maven.test.skip svojstvo da pravi:

 ne-testovi istiniti 

Zatim ćemo izvršiti profil pokretanjem mvn paket -Pno-testovi naredba. Sad se stvara artefakt i testovi se preskaču. U ovom slučaju mvn paket -Dmaven.test.skip zapovijed bi bila lakša.

Međutim, ovo je bio samo uvod u Maven profile. Pogledajmo neke složenije postavke.

3. Deklariranje profila

U prethodnom smo odjeljku vidjeli kako stvoriti jedan profil. Možemo konfigurirati onoliko profila koliko želimo dajući im jedinstvene ID-ove.

Recimo da smo željeli stvoriti profil koji je izvodio samo naše integracijske testove i drugi za skup testova mutacija.

Započeli bismo određivanjem iskaznica za svakog u našem pom.xml datoteka:

  integracijski testovi mutacijski testovi 

Unutar svake profil element, možemo konfigurirati mnoge elemente kao što su ovisnosti, dodaci, resursi, finalName.

Dakle, za gornji primjer bismo dodali dodatke i njihove ovisnosti za integracijski testovi i testovi mutacije.

Razdvajanjem testova u profile može se ubrzati zadana gradnja fokusiranjem, recimo, na samo jedinične testove.

3.1. Opseg profila

Sad smo upravo postavili ove profile u naš pom.xml datoteku koja ih prijavljuje samo za naš projekt.

No, u Mavenu 3 zapravo možemo dodati profile na bilo koje od tri lokacije:

  1. Profili specifični za projekt ulaze u projekt pom.xml datoteka
  2. Korisnički profili idu u korisnikov profil postavke.xml datoteka
  3. Globalni profili prelaze u globalne postavke.xml datoteka

Imajte na umu da je Maven 2 podržavao četvrto mjesto, ali je to uklonjeno u Maven 3.

Pokušavamo konfigurirati profile u pom.xml kad god je moguće. Razlog je taj što želimo koristiti profile i na našim razvojnim strojevima i na strojevima za izradu. Koristiti postavke.xml je teže i podložan pogreškama jer ga sami moramo distribuirati u okruženjima za izgradnju.

4. Aktiviranje profila

Nakon što stvorimo jedan ili više profila možemo ih početi koristiti, ili drugim riječima, aktivirajući ih.

4.1. Vidjeti koji su profili aktivni

Iskoristimo pomoć: aktivni-profili Cilj je vidjeti koji su profili aktivni u našoj zadanoj verziji:

mvn pomoć: aktivni profili

Zapravo, budući da još nismo ništa aktivirali, dobivamo:

Sljedeći su profili aktivni:

Pa ništa.

Aktivirat ćemo ih za samo trenutak. Ali brzo, drugi način da se vidi što je aktivirano jest to uključuju maven-help-plugin u našem pom.xml i vezati aktivni profili cilj sastaviti faza:

   org.apache.maven.plugins maven-help-plugin 3.2.0 show-profile kompajliranje aktivnih profila 

Sada, krenimo s njima! Osvrnut ćemo se na nekoliko različitih načina.

4.2. Koristeći -P

Zapravo, već smo na početku vidjeli jedan način, a to je da možemo aktivirajte profile pomoću -P argument.

Pa krenimo s omogućavanjem integracija-test profil:

mvn paket -P integracijski testovi

Ako provjerimo aktivne profile, pomoću maven-help-plugin ili mvn pomoć: aktivni profili -P integracijski testovi naredbom dobit ćemo sljedeći rezultat:

Sljedeći su profili aktivni: - integracijski testovi

U slučaju da istodobno želimo aktivirati više profila, koristimo popis profila odvojenih zarezom:

mvn paket -P integracijski testovi, testovi mutacija

4.3. Aktivno prema zadanim postavkama

Ako uvijek želimo izvršiti profil, prema zadanim postavkama možemo ga aktivirati:

 integracijski testovi istinito 

Onda možemo trčati mvn paket bez navođenja profila, a možemo provjeriti je li integracija-test profil aktivan.

Međutim, ako pokrenemo naredbu Maven i omogućimo drugi profil osim activeByDefault profil se preskače. Pa kad trčimo mvn paket -P testovi mutacije tada samo testovi mutacije profil aktivan.

Kada se aktiviramo na druge načine, activeByDefault profil se također preskače kao što ćemo vidjeti u sljedećim odjeljcima.

4.4. Na temelju svojstva

Profile možemo aktivirati na naredbenom retku. Međutim, ponekad je prikladnije ako se automatski aktiviraju. Na primjer, možemo ga temeljiti na a -D svojstvo sustava:

 aktivno okruženje na nekretnini-okoliš 

Sada aktiviramo profil pomoću mvn paket -Okolina naredba.

Također je moguće aktivirati profil ako svojstvo nije prisutno:

 !okoliš 

Ili možemo aktivirati profil ako svojstvo ima određenu vrijednost:

 test okoline 

Sada možemo pokrenuti profil s mvn paket -Okolina = test.

I na kraju, možemo aktivirati profil ako svojstvo ima vrijednost različitu od navedene vrijednosti:

 test okoliša! 

4.5. Bazirano na JDK Verzija

Druga je mogućnost omogućiti profil zasnovan na JDK pokrenutom na stroju. U ovom slučaju želimo omogućiti profil ako JDK verzija započinje s 11:

 aktivan-na-jdk-11 11 

Također možemo koristiti raspone za verziju JDK kako je objašnjeno u Maven Syntax Range Range.

4.6. Na temelju operativnog sustava

Alternativno, možemo aktivirati profil na temelju nekih podataka o operativnom sustavu.

A ako u to nismo sigurni, prvo možemo upotrijebiti mvn provoditelj: display-info naredba koja daje sljedeći izlaz na mom stroju:

Verzija Maven: 3.5.4 JDK verzija: 11.0.2 normalizirano kao: 11.0.2 Informacije o OS-u: Arch: amd64 Obitelj: Windows Ime: Windows 10 Verzija: 10.0

Nakon toga možemo konfigurirati profil koji se aktivira samo u sustavu Windows 10:

 active-on-windows-10 windows 10 Windows amd64 10.0 

4.7. Na temelju datoteke

Druga mogućnost je pokretanje profila ako je datoteka postoji ili je nedostaje.

Dakle, stvorimo testni profil koji se izvršava samo ako je testreport.html još nije prisutan:

  target / testreport.html 

5. Deaktiviranje profila

Vidjeli smo mnogo načina za aktiviranje profila, ali ponekad moramo onemogućiti i jedan.

Da bismo onemogućili profil, možemo upotrijebiti '!' ili '-'.

Dakle, da biste onemogućili aktivan-na-jdk-11 profil koji izvršavamo mvn prevesti -P -aktivan-na-jdk-11 naredba.

6. Zaključak

U ovom smo članku vidjeli kako raditi s Maven profilima, tako da možemo stvoriti različite konfiguracije izrade.

Profili pomažu u izvršavanju određenih elemenata gradnje kada su nam potrebni. Ovo optimizira naš postupak izrade i pomaže bržim povratnim informacijama programerima.

Slobodno pogledajte završeno pom.xml datoteka na GitHub.