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:
- Profili specifični za projekt ulaze u projekt pom.xml datoteka
- Korisnički profili idu u korisnikov profil postavke.xml datoteka
- 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.