CodeGym/Java tanfolyam//Maven bővítmények

Maven bővítmények

Szint, Lecke
Elérhető

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.

Hozzászólások
  • Népszerű
  • Új
  • Régi
Hozzászólás írásához be kell jelentkeznie
Ennek az oldalnak még nincsenek megjegyzései