6.1 Pambuka kanggo plugins

Siklus urip standar bisa ditambah kanthi fungsi nggunakake plugin Maven. Plugin ngidini sampeyan nglebokake langkah-langkah anyar menyang siklus standar (contone, distribusi menyang server aplikasi) utawa ngluwihi langkah sing wis ana.

Plugins ing Maven ora soko mirunggan, ing nalisir, iku sing paling umum lan asring ditemoni. Sawise kabeh, yen sampeyan pengin nyetel sawetara nuansa mbangun proyek sampeyan, sampeyan kudu nemtokake informasi sing dibutuhake ing pom.xml. Lan cara mung kanggo nindakake iki yaiku nulis "plugin".

Wiwit plugin mung minangka artefak minangka dependensi, padha diterangake kanthi cara sing padha. Tinimbang bagean dependensi - plugin, tinimbang dependensi - plugin, tinimbang repositori - pluginRepositories, repositori - pluginRepository.

Tuladha:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.6</version>
    </plugin>
</plugins>

Nyatakake plugin ing pom.xml ngidini sampeyan ndandani versi plugin, uga nyetel paramèter sing dibutuhake, nemtokake macem-macem parameter konfigurasi lan ikatan menyang fase.

Ing tembung liyane, Maven nganggo plugin tartamtu sing nindakake kabeh karya. Yaiku, yen kita pengin ngajar Maven babagan bangunan khusus proyek kasebut, mula kita kudu nambahake pom.xml indikasi kanggo miwiti plugin sing dikarepake ing tahap sing dibutuhake lan parameter sing dibutuhake .

Jumlah plugin sing kasedhiya akeh banget, ana macem-macem plugin sing ngidini sampeyan mbukak aplikasi web langsung saka maven kanggo nyoba ing browser, ngasilake sumber daya, lan liya-liyane. Tugas utama pangembang ing kahanan iki yaiku nemokake lan ngetrapake set plugin sing paling cocog .

6.2 Siklus urip lan plugin

Kerep banget, plugin digunakake kanggo ngluncurake sawetara sarana konsol sajrone eksekusi fase tartamtu. Menapa malih, kita malah bisa mbukak kelas Jawa biasa (sing duwe cara utama, mesthi).

Tuladha:

<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>

Biasane plugin bisa dikonfigurasi kanthi fleksibel. Kabeh plugin resmi saka pangembang Maven didokumentasikan kanthi apik ing situs web Maven resmi. Contone, kanggo maven-compiler-plugin ing kaca Apache Maven Project, sampeyan bisa ndeleng dhaptar kabeh variabel sing ngontrol plugin. Informasi babagan plugin kasedhiya ing link

Informasi sing luwih penting. Plugin sing beda diarani Maven ing macem-macem tahapan siklus urip. Contone, proyek sing njlèntrèhaké aplikasi desktop Java swing duwe tahapan siklus urip sing beda karo sing khas kanggo pangembangan aplikasi web (perang).

Utawa, contone, nalika printah "mvn test" wis kaleksanan, kabeh pesawat saka langkah ing siklus urip project diwiwiti: "proses-sumber", "kompilasi", "proses-kelas", "proses-test". -resources", "test-compile", tes. Sampeyan bisa ndeleng sebutno fase kasebut ing pesen sing ditampilake dening Maven:

[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 Gol ing Maven - gol

Ing Maven, uga ana sing dadi tujuan (tujuan). goal punika Urut kaya target wiwitan Maven. Tujuan utama bertepatan karo fase utama:

  • validasi;
  • ngumpulake;
  • tes;
  • paket;
  • ngecek;
  • nginstal;
  • nyebarake.

Ing saben fase siklus urip proyek, plugin tartamtu (jar-library) diarani, sing kalebu sawetara tujuan (tujuan)

Contone, plugin "maven-compiler-plugin" ngemot rong target: compiler: compile kanggo kompilasi kode sumber utama proyek, lan compiler: testCompile kanggo kompilasi tes. Secara resmi, dhaptar fase bisa diganti, sanajan iki arang perlu.

Yen sampeyan kudu nindakake sawetara tumindak non-standar ing fase tartamtu, sampeyan mung kudu nambah plugin sing cocog kanggo pom.xml

<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>

Sing paling penting ing kasus iki yaiku kanggo nemtokake jeneng plugin "eksekusi / fase", ing ngendi sampeyan kudu nglebokake telpon menyang tujuan "tujuan" plugin. Contone, sampeyan kudu ngasilake kode Java adhedhasar xml. Banjur sampeyan butuh fase "generate-sources", sing diselehake sadurunge telpon menyang fase kompilasi lan becik kanggo ngasilake bagean saka sumber proyek.