6.1 Bevezetés a bővítményekbe
A szabványos életciklusok funkcionalitással bővíthetők a Maven bővítmények segítségével. A beépülő modulok lehetővé teszik új lépések beszúrását a szabványos ciklusba (például terjesztés az alkalmazáskiszolgálón), vagy kiterjesztik a meglévő lépéseket.
A Maven beépülő moduljai nem valami rendkívüli, éppen ellenkezőleg, a leggyakoribb és leggyakrabban előforduló dolog. Végül is, ha meg akarja adni a projekt felépítésének néhány árnyalatát, akkor meg kell adnia a szükséges információkat a pom.xml fájlban. Ennek egyetlen módja egy „plugin” írása.
Mivel a beépülő modulok éppúgy műtermékek, mint függőségek, leírásuk nagyjából azonos. A függőségek szakasz helyett - bővítmények, függőség helyett - plugin, tárhelyek helyett - pluginRepository, repository - pluginRepository.
Példa:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
A beépülő modul deklarálása a pom.xml fájlban lehetővé teszi a bővítmény verziójának javítását, valamint a szükséges paraméterek beállítását, különféle konfigurációs paraméterek definiálását és fázisokhoz való kapcsolódást.
Más szóval, a Maven bizonyos beépülő modulokat futtat, amelyek minden munkát elvégeznek. Vagyis ha meg akarjuk tanítani a Maven-t a projekt speciális buildjeiről, akkor a pom.xml-hez kell adnunk egy jelzést, hogy a kívánt beépülő modult a kívánt fázisban és a szükséges paraméterekkel elindítsuk .
A rendelkezésre álló bővítmények száma nagyon nagy, vannak különféle bővítmények, amelyek lehetővé teszik, hogy egy webalkalmazást közvetlenül a maven-ről futtassunk, hogy böngészőben teszteljük, erőforrásokat generáljunk és hasonlók. A fejlesztő fő feladata ebben a helyzetben a legmegfelelőbb beépülő modul megtalálása és alkalmazása .
6.2 Életciklus és bővítmények
Nagyon gyakran egy beépülő modult használnak valamilyen konzol-segédprogram elindítására egy bizonyos fázis végrehajtása során. Sőt, akár egy rendes Java osztályt is futtathatunk (aminek persze van fő metódusa).
Példa:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>first-argument</argument>
<argument>second-argument</argument>
</arguments>
</configuration>
</plugin>
Általában a bővítmények nagyon rugalmasan konfigurálhatók. A Maven fejlesztőinek összes hivatalos bővítménye nagyon jól dokumentálva van a hivatalos Maven webhelyen. Például a maven-compiler-plugin esetében az Apache Maven Project oldalán láthatja a beépülő modult vezérlő összes változó listáját. A pluginnal kapcsolatos információk a linken érhetők el
További fontos információk. A Maven különböző bővítményeket hív meg életciklusuk különböző szakaszaiban. Például egy swing Java asztali alkalmazást leíró projekt életciklus-szakaszai eltérnek azoktól, amelyek egy webalkalmazás fejlesztésére jellemzőek (háború).
Vagy például az „mvn test” parancs végrehajtása során a projekt életciklusában lépések egész sora indul el: „process-resources”, „compile”, „process-classes”, „process-test”. -források”, „teszt-fordítás” , teszt. Ezen fázisok említését láthatja a Maven által megjelenített üzenetekben:
[INFO] Scanning for projects...
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ codegym
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ codegym ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ codegym ---
[INFO] Surefire report directory: t:\ projects\codegym\target\surefire-reports
6.3 Gól Mavenben – gól
A Mavenben van olyan is, hogy gól (gól). A cél olyan, mint a Maven indulási célpontja. A fő célok egybeesnek a fő fázisokkal:
- érvényesít;
- összeállítani;
- teszt;
- csomag;
- ellenőrizni;
- telepítés;
- telepíteni.
A projekt életciklusának minden fázisában egy adott plugin (jar-library) kerül meghívásra, amely számos célt (goal) tartalmaz.
Például a "maven-compiler-plugin" beépülő modul két célt tartalmaz: a compiler:compile a projekt fő forráskódjának fordításához, és a compiler:testCompile a tesztek fordításához. Formálisan a fázisok listája módosítható, bár erre ritkán van szükség.
Ha egy bizonyos fázisban nem szabványos műveleteket kell végrehajtania, akkor csak hozzá kell adnia a megfelelő bővítményt a pom.xml-hez
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>Name-plugin</artifactId>
<executions>
<execution>
<id>customTask</id>
<phase>generate-sources</phase>
<goals>
<goal>pluginGoal</goal>
</goals>
</execution>
</executions>
</plugin>
Ebben az esetben a legfontosabb, hogy a plugin számára meghatározzuk a „végrehajtási/fázis” fázis nevét, amelyben be kell ágyazni a hívást a plugin „cél” céljára. Például Java kódot kell generálnia xml alapján. Ezután szükség van a „források generálása” fázisra, amely a fordítási fázis hívása elé kerül, és ideális a projekt forrásainak egy részének előállításához.
GO TO FULL VERSION