Vodič za arhetip Mavena
1. Pregled
Mavenov arhetip apstrakcija je vrste projekta koji se može pretvoriti u konkretno prilagođeni Mavenov projekt. Ukratko, to je predložak predloška projekta iz kojeg se izrađuju drugi projekti.
Glavna korist korištenja arhetipova je standardizacija razvoja projekata i omogućavanje programerima da lako slijede najbolje prakse, a brže pokreću svoje projekte.
U ovom uputstvu ćemo pogledati kako stvoriti prilagođeni arhetip, a zatim kako ga koristiti za generiranje Mavenova projekta kroz maven-archetype-plugin.
2. Maven Archetype Descriptor
Mavenov deskriptor arhetipa srce je arhetipskog projekta. To je XML datoteka s imenom arhetip-metapodaci.xml i nalazi se u META-INF / maven imenik staklenke.
Koristi se za opis metapodataka arhetipova:
traka src / main / java ** / *. java
The requiredSvojstva Oznaka se koristi za pružanje svojstava tijekom generiranja projekta. Stoga će se od nas tražiti da unesemo vrijednosti za njih, s izborom da prihvatimo zadanu vrijednost.
skupovi datoteka, s druge strane, koriste se za konfiguriranje koji će se resursi kopirati u konkretni generirani projekt. Filtrirana datoteka znači da će rezervirani mjesta biti zamijenjeni navedenim vrijednostima tijekom postupka generiranja.
I, pomoću zapakirano = "true" u fileSet, kažemo da će odabrane datoteke biti dodane u hijerarhiju mapa koju navodi paket imovine.
Ako želimo generirati projekt s više modula, tada oznaka modula može pomoći u konfiguriranju svih modula generiranog projekta.
Imajte na umu da je ova datoteka o Arhetipu 2 i novijim. U verziji 1.0.x datoteka je upravo pozvana arhetip.xml i imao je drugačiju strukturu.
Za više informacija svakako pogledajte službene Apache dokumente.
3. Kako stvoriti arhetip
Arhetip je uobičajeni Mavenov projekt sa sljedećim dodatnim sadržajem:
- src / main / resources / archetype-resources je predložak iz kojeg se resursi kopiraju u novostvoreni projekt
- src / main / resources / META-INF / maven / archetype-metadata.xml: je deskriptor koji se koristi za opis metapodataka arhetipova
Da bismo ručno stvorili arhetip, možemo započeti s novostvorenim projektom Maven, a zatim možemo dodati gore spomenute resurse.
Ili ga možemo generirati pomoću dodatak za arhetip-maven, a zatim prilagodite sadržaj arhetip-resursi imenik i arhetip-metapodaci.xml datoteka.
Za generiranje arhetipa možemo koristiti:
mvn arhetip: generiraj -B -DarchetypeArtifactId = maven-arhetype-archetype \ -DarchetypeGroupId = maven-archetype \ -DgroupId = com.baeldung \ -DartifactId = test-arhetip
Također možemo stvoriti arhetip iz postojećeg projekta Maven:
mvn arhetip: create-from-project
Generirano je u cilj / generirani izvori / arhetip, spreman za upotrebu.
Bez obzira kako smo stvorili arhetip, na kraju ćemo dobiti sljedeću strukturu:
archetype-root / ├── pom.xml └── src └── glavni ├── java └── resursi ├── arhetip-resursi │ ├── pom.xml │ └── src └── META-INF └── maven └── arhetip-metapodaci.xml
Sada možemo početi graditi svoj arhetip stavljanjem resursa u arhetip-resursi direktorij i konfiguriranje u arhetip-metapodaci.xml datoteka.
4. Izgradnja arhetipa
Sada smo spremni prilagoditi svoj arhetip. Za vrhunac ovog postupka, predstavit ćemo stvaranje jednostavnog arhetipa Maven za generiranje RESTful aplikacije temeljene na JAX-RS 2.1.
Nazovimo to samo maven-arhetip.
4.1. Arhetipsko pakiranje
Počnimo s izmjenom datoteke pom.xml arhetipskog projekta smještenog pod maven-arhetipski direktorij:
maven-arhetip
Ova vrsta pakiranja dostupna je zahvaljujući arhetip-pakiranje produžetak:
org.apache.maven.archetype arhetip-pakiranje 3.0.1
4.2. Dodavanje pom.xml
Stvorimo sada pom.xml datoteka smještena pod arhetip-resursi imenik:
$ {groupId} $ {artifactId} $ {version} war javax.ws.rs javax.ws.rs-api 2.1 pod uvjetom
Kao što vidimo, groupId, artefaktId i verzija su parametrizirani. Oni će biti zamijenjeni tijekom stvaranja novog projekta iz ovog arhetipa.
Sve što je potrebno za generirani projekt, poput ovisnosti i dodataka, možemo staviti u pom.xml. Ovdje smo dodali ovisnost JAX RS jer će se arhetip koristiti za generiranje aplikacije temeljene na RESTful-u.
4.3. Dodavanje potrebnih resursa
Dalje, možemo dodati neki Java kôd za našu aplikaciju u arhetip-resursi / src / main / java.
Klasa za konfiguriranje JAX-RS aplikacije:
paket $ {paket}; // uvoz @ApplicationPath ("$ {app-path}") javna klasa AppConfig proširuje aplikaciju {}
I klasa za ping resurs:
@Path ("ping") javna klasa PingResource {// ...}
Konačno, stavite datoteku za konfiguraciju poslužitelja, poslužitelj.xml, u archetype-resources / src / main / config / liberty.
4.4. Konfiguriranje metapodataka
Nakon dodavanja svih potrebnih resursa, sada možemo konfigurirati koji će se kopirati tijekom generiranja putem arhetip-metapodaci.xml datoteka.
Našem arhetipu možemo reći da želimo kopirati sve izvorne datoteke Java:
src / main / java ** / *. java src / main / config / liberty server.xml
Ovdje želimo sve Java datoteke iz src / main / java imenik i poslužitelj.xml datoteka iz src / main / config / liberty, kopirati.
4.5. Instaliranje arhetipa
Sad kad smo završili sa sastavljanjem svega, možemo instalirati arhetip pozivajući se na ovu naredbu:
mvn instalirati
U ovom je trenutku arhetip registriran u datoteci archetype-catalog.xml, nalazi se u lokalnom spremištu Maven i stoga je spreman za upotrebu.
5. Korištenje instaliranog arhetipa
The maven-archetype-plugin omogućuje korisniku stvaranje Maven projekta putem generirati cilj i postojeći arhetip. Za više informacija o ovom dodatku možete posjetiti početnu stranicu.
Ova naredba koristi ovaj dodatak za generiranje projekta Maven iz našeg arhetipa:
mvn arhetip: generiraj -DarchetypeGroupId = com.baeldung.archetypes -DarchetypeArtifactId = maven-archetype -DarchetypeVersion = 1.0-SNAPSHOT -DgroupId = com.baeldung.restful -DartifactId = cool-jaxrs-sample-SNAPSH-DversionOT
Tada bismo trebali proslijediti GAV našeg arhetipa kao argumente maven-archetype-plugin: generiraj cilj. Također možemo proći GAV konkretnog projekta koji želimo generirati, u suprotnom ih možemo pružiti u interaktivnom načinu.
Beton cool-jaxrs-uzorak generirani projekt je stoga spreman za izvođenje bez ikakvih promjena. Dakle, možemo ga pokrenuti samo pozivanjem ove naredbe:
mvn paket sloboda: trčanje
Tada možemo pristupiti ovom URL-u:
// localhost: 9080 / cool-jaxrs-sample // ping
6. Zaključak
U ovom smo članku prikazali kako se gradi i koristi arhetip Mavena.
Demonstrirali smo kako stvoriti arhetip, a zatim kako konfigurirati resurse predloška putem arhetip-metapodaci.xml datoteka.
Kôd se, kao i obično, može naći na Githubu.