Apache Maven Flashcards
Mi az Apache Maven?
Egy projektkezelő eszköz.
Sorold fel az Apache Maven célkitűzéseit!
- Az összeállítási folyamat megkönnyítése
- Egységes rendszer biztosítása az összeállításhoz
- Minőségi projekt információk szolgáltatása
- Irányelvek és legjobb gyakorlatok szolgáltatása a fejlesztéshez
Sorold fel az Apache Maven főbb lehetőségeit!
Egységes rendszer projektek összeállításához
Függőségkezelés
Disztribúció közzététel
Jelenetkészítés és webhely létrehozás
Sorold fel az Apache maven főbb jellemzőit!
Konvenciók előtérbe helyezése az egyedi beállításokkal szemben
Projekt életciklusok és életciklus fázis meghatározása
Jellegét tekintve deklaratív
Moduláris és kiterjeszthető felépítés
Jellemezd az Apache Maven fejlesztését és telepítését!
Javaban íródott, szabad és nyílt forrású, jelenlegi verzió a 3.9.0
4.0 fejlesztés alatt áll
Használatához JDK 7 vagy későbbi kiadása szükséges, JRE nem elegendő
Milyen könyvtárszerkezete van az Apache Mavennek?
project/
—-src/
——–main/
————java/
————resources/
——–test/
————java/
————resources/
——–site/
—-pom.xml
Mire való a settings.xml?
Projekt-független beállításokat tartalmazó konfigurációs állomány.
Összes felhasználó számára globális beállításokat szolgáltat.
Ezen beállításokat saját settings.xml file-al felül lehet írni .
Mi a termék (artifact)?
Egy projekt által előállított állomány. Projektenként egy termék. pl. jar csomagolású projektben egyetlen JAR állomány. classifier POM elem által lehet termékeket megkülönböztetni.
Tárolókban kerülnek közzétételre, ezáltal más projektekkel való függőségeket írja le.
Mi a Projekt objektum modell? (POM)
Egy projekt deklaratív leírását tartalmazó XML dokumentum.
Életciklus fázis vagy bővítmény-cél végrehajtásakor a Maven az aktuális könyvtárban keresi a POM-ot.
Benne szülő ó-gyerek kapcsolatok is definiálhatóak.
Mi a szuper-POM?
Maven által alapértelmezésben használt POM. Ha egy projekt nem rendelkezik explicit módon megadott szülője, akkor szuper-POM beállításait örökli.
Mi az effektív-POM?
A projekthez tartozó POM, a felemenő ági projektekhez tartozó POM-ok és a szuper-POM kombinációja.
Jellemezd a Maven koordinátákat!
Projekteket Maven komponensek azonosítanak, 3 komponense:
groupId: csoportazonosító, gyakori a fordított domain-nevek használata
atrifactId: projektnév
version: projekt verziószáma
Ezek határozzák meg a kimenetként előállított állományok koordinátáit.
Lehetővé teszik a függőségként történő hivatkozást.
Mi adható meg a packaging elemben?
Projekt csomagolása
pom, jar, maven-plugin, ejb, war, ear, rar
Jellemezd a Maven bővítményeket!
Sok funkciót bővítmények nyújtanak.
A bővítmények is termékek, melyekre Maven koordinátákkal lehet hivatkozni.
előtag:cél formában lehet hivatkozni rájuk.
Hivatalos Apache Maven projektekben maven-xyz-plugin formájúak, ahol xyz az előtag.
Más bővítményeknél xyz-maven-plugin az ajánlott.
Az előtagot a bővítmények határozzák meg.
Jellemezd a Maven tárolókat!
Egyes termékeket tárolókból lehet elérni.
Két típus:
- távoli tárolók tipikusan weben érhetők el
- lokális tárolók
Jellemezd a Maven életciklusokat!
Egy életciklust jól meghatározott életciklus fázisok sorozata határoz meg.
Minden életciklus fázist egy egyedi név azonosít. Bővítményeket lehet hozzájuk csatolni, ezek kötések lesznek.
Életciklus fázisok végrehajtása a hozzájuk tartozó bővítmény-célok végrehajtását jelenti. Maga után vonja valamennyi a sorban őt megelőző fázis végrehajtását is. A végrehajtás sorrend a POMban megadott sorrendet követ.
Szabványos életciklusok: clean, default, site.
Jellemezd a clean életciklust!
A következő életciklus fázisokat tartalmazza:
pre-clean
clean
post-clean
Törlésre kerülnek a maven által létrehozott állományok.
Jellemezd a site életciklust!
Következő életciklus fázisokat tartalmazza:
pre-site
site
post-site
site-deploy
Sorolj fel néhány fontosabb életciklus fázisát a default életciklusnak!
compile
test
package
site
deploy
Hogyan hivatkozunk tulajdonságokra Mavenben?
${x} formában hivatkozásokkal lehet helyettesíteni a POMban.
${env.név} formájú hivatkozások helyettesítése a megfelelő nevű környezeti változó értékével.
Megadható Java rendszertulajdonság neve is.
Jellemezd a függőségkezelést Mavenben!
groupId, artifactId, version a függőség Maven koordinátáit tartalmazzák
classifier: a projekt által létrehozott termékek megkülönböztetésére szolgál
type: függőség típusát tartalmazza (alapértelmezés a jar)
optional: függőség opcionális-e (alapértelmezés a false)
scope: függőség hatáskörét tartalmazza, lehetséges értékei:
- compile
- provided
- runtime
- system
- test
- import
systemPath: system hatáskörű függőséghez megengedett és kötelező, függőség abszolút elérési útvonalát tartalmazza
exclusions: kizárandó függőségek megadására szolgál
Függőségekben verziószám helyett megadható
verziótartomány.
Jellemezd a tranzitív függőségeket!
Ha B függősége A-nak, C pedig B-nek akkor C tranzitív függősége A-nak.
exclusions elemmel lehet kizárni.
Jellemezd a öröklést Mavenben!
Olyan projekt lehet szülő, melynek csomagolási módja pom. Gyerekben artifactId elemben kell megadni a child értéket és parent elemben hihivatkozást a szülőre. Egyes beállítások csak akkor lesznek örökölve, ha nincs a gyerekben explicit módon megadva pomban.
Jellemezd a többmodulosos projekteket!
Ezek aggregátor projektek, moduloknak nevezett projektekből állnak.
Csomagolás módja kötelezően pom.
Modulok felsorolása modules elemeben történik.
Ha főkönyvtárban hajtunk végre életciklus fázist vagy bővítmény-célt akkor minden modulban megtörténik.
Jellemezd a profilokat Mavenben!
Olyan POM opcionális beállításokat tartalmazó részei, amelyek csak aktiválás esetén kerülnek felhasználásra. POM futásidőben módosul.
Az aktiválás lehet explicit kérésre vagy automatikus is.
Jellemezd a bővítmények használatát Mavenben!
Rendelkezésre álló elemek:
groupId, artifactId, version
configuration: konfigurációs paraméterek a célok végrehajtásához
dependencies: szükséges függőségek
executions: hozzáköti a végrehajtást életciklus-fázisokhoz
extensions: be kell tölteni bővítmény kiterjesztést (alap: false)
inherited: öröklés során tud átvenni bővítmény beállításait (alap: true)
Jellemezd a terméket feltöltését távoli tárolókba!
Deploy életciklus fázisban kerülnek feltöltésre.
POM distributionManagement elemében adható meg a repository
Jellemezd a webhely készítést Mavenben!
reporting elemben kell megadni a bővítményeket, mellyel lehet jelentéseket készíteni és automatikusan feltölteni.
outputDirectory: kimeneti könyvtár elérési útvonala
excludeDefaults: alapértelmezésben előállításra kerülő jelentések kizárása
Jellemezd a Maven Wrappert!
Csomagoló szkriptek elhelyezését teszi lehetővé a projektben.