Apache Maven Flashcards

1
Q

Mi az Apache Maven?

A

Egy projektkezelő eszköz.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Sorold fel az Apache Maven célkitűzéseit!

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sorold fel az Apache Maven főbb lehetőségeit!

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Sorold fel az Apache maven főbb jellemzőit!

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Jellemezd az Apache Maven fejlesztését és telepítését!

A

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ő

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Milyen könyvtárszerkezete van az Apache Mavennek?

A

project/
—-src/
——–main/
————java/
————resources/
——–test/
————java/
————resources/
——–site/
—-pom.xml

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Mire való a settings.xml?

A

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 .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Mi a termék (artifact)?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Mi a Projekt objektum modell? (POM)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Mi a szuper-POM?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Mi az effektív-POM?

A

A projekthez tartozó POM, a felemenő ági projektekhez tartozó POM-ok és a szuper-POM kombinációja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jellemezd a Maven koordinátákat!

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Mi adható meg a packaging elemben?

A

Projekt csomagolása
pom, jar, maven-plugin, ejb, war, ear, rar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jellemezd a Maven bővítményeket!

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Jellemezd a Maven tárolókat!

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Jellemezd a Maven életciklusokat!

A

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.

17
Q

Jellemezd a clean életciklust!

A

A következő életciklus fázisokat tartalmazza:
pre-clean
clean
post-clean
Törlésre kerülnek a maven által létrehozott állományok.

18
Q

Jellemezd a site életciklust!

A

Következő életciklus fázisokat tartalmazza:
pre-site
site
post-site
site-deploy

19
Q

Sorolj fel néhány fontosabb életciklus fázisát a default életciklusnak!

A

compile
test
package
site
deploy

20
Q

Hogyan hivatkozunk tulajdonságokra Mavenben?

A

${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.

21
Q

Jellemezd a függőségkezelést Mavenben!

A

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.

22
Q

Jellemezd a tranzitív függőségeket!

A

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.

23
Q

Jellemezd a öröklést Mavenben!

A

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.

24
Q

Jellemezd a többmodulosos projekteket!

A

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.

25
Q

Jellemezd a profilokat Mavenben!

A

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.

26
Q

Jellemezd a bővítmények használatát Mavenben!

A

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)

27
Q

Jellemezd a terméket feltöltését távoli tárolókba!

A

Deploy életciklus fázisban kerülnek feltöltésre.
POM distributionManagement elemében adható meg a repository

28
Q

Jellemezd a webhely készítést Mavenben!

A

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

29
Q

Jellemezd a Maven Wrappert!

A

Csomagoló szkriptek elhelyezését teszi lehetővé a projektben.