Tujuan dan Fase Maven

1. Ikhtisar

Dalam tutorial ini, kita akan menjelajahi siklus hidup build Maven yang berbeda dan tahapannya.

Kami juga akan membahas hubungan inti antara Sasaran dan Tahapan.

2. Siklus Hidup Maven Build

Build Maven mengikuti siklus hidup tertentu untuk menyebarkan dan mendistribusikan proyek target.

Ada tiga siklus hidup bawaan:

  • default: siklus hidup utama karena bertanggung jawab atas penerapan proyek
  • clean: untuk membersihkan proyek dan menghapus semua file yang dihasilkan oleh build sebelumnya
  • site: untuk membuat dokumentasi situs proyek

Setiap siklus hidup terdiri dari urutan fase. The bawaan siklus membangun kehidupan terdiri dari 23 tahapan seperti itu utama membangun siklus hidup.

Di sisi lain, siklus hidup bersih terdiri dari 3 fase, sedangkan siklus hidup situs terdiri dari 4 fase.

3. Fase Maven

Fase Maven merepresentasikan tahapan dalam siklus proses build Maven . Setiap fase bertanggung jawab atas tugas tertentu.

Berikut adalah beberapa fase terpenting dalam siklus hidup build default :

  • validate: periksa apakah semua informasi yang diperlukan untuk build tersedia
  • kompilasi: mengkompilasi kode sumber
  • test-compile: mengkompilasi kode sumber pengujian
  • test: menjalankan pengujian unit
  • paket: paket kode sumber yang dikompilasi ke dalam format yang dapat didistribusikan (jar, war,…)
  • integrasi-test: memproses dan menerapkan paket jika diperlukan untuk menjalankan pengujian integrasi
  • install: instal paket ke repositori lokal
  • deploy: salin paket ke repositori jarak jauh

Untuk daftar lengkap setiap fase siklus proses, lihat Referensi Maven.

Tahapan dijalankan dalam urutan tertentu. Artinya jika kita menjalankan fase tertentu menggunakan perintah:

mvn 

Ini tidak hanya menjalankan fase yang ditentukan tetapi juga semua fase sebelumnya.

Misalnya, jika kita menjalankan fase penerapan - yang merupakan fase terakhir dalam siklus hidup build default - yang juga akan menjalankan semua fase sebelum fase penerapan , yang merupakan seluruh siklus proses default :

mvn deploy

4. Tujuan Maven

Setiap fase adalah urutan tujuan, dan setiap tujuan bertanggung jawab atas tugas tertentu.

Saat kita menjalankan fase - semua tujuan yang terikat pada fase ini dieksekusi secara berurutan.

Berikut adalah beberapa fase dan tujuan default yang terikat padanya:

  • compiler: compile - tujuan kompilasi dari plugin compiler terikat pada fase kompilasi
  • compiler: testCompile terikat pada fase uji-kompilasi
  • pasti: tes terikat pada fase uji
  • install: install terikat untuk menginstal fase
  • jar: jar and war: war terikat pada fase paket

Kita dapat membuat daftar semua tujuan yang terikat pada fase tertentu dan pluginnya menggunakan perintah:

mvn help:describe -Dcmd=PHASENAME

Misalnya, untuk membuat daftar semua tujuan yang terikat pada fase kompilasi , kita dapat menjalankan:

mvn help:describe -Dcmd=compile

Dan dapatkan keluaran sampel:

compile' is a phase corresponding to this plugin: org.apache.maven.plugins:maven-compiler-plugin:3.1:compile

Yang, seperti disebutkan di atas, berarti tujuan kompilasi dari plugin compiler terikat pada fase kompilasi .

5. Plugin Maven

Plugin Maven adalah sekelompok tujuan. Namun, tujuan ini tidak selalu terikat pada fase yang sama.

Misalnya, berikut adalah konfigurasi sederhana dari plugin Maven Failsafe yang bertanggung jawab untuk menjalankan tes integrasi:

   maven-failsafe-plugin ${maven.failsafe.version}    integration-test verify      

Seperti yang bisa kita lihat, plugin Failsafe memiliki dua tujuan utama yang dikonfigurasi di sini:

  • integrasi-tes : menjalankan tes integrasi
  • verifikasi : verifikasi semua pengujian integrasi yang lulus

Kita dapat menggunakan perintah berikut untuk membuat daftar semua tujuan di plugin tertentu :

mvn :help

Misalnya, untuk mencantumkan semua sasaran di plugin Failsafe:

mvn failsafe:help

Dan hasilnya adalah:

This plugin has 3 goals: failsafe:help Display help information on maven-failsafe-plugin. Call mvn failsafe:help -Ddetail=true -Dgoal= to display parameter details. failsafe:integration-test Run integration tests using Surefire. failsafe:verify Verify integration tests ran using Surefire.

Untuk menjalankan tujuan tertentu, tanpa menjalankan seluruh fase (dan fase sebelumnya) kita dapat menggunakan perintah:

mvn :

Misalnya, untuk menjalankan tujuan uji integrasi dari plugin Failsafe, kita perlu menjalankan:

mvn failsafe:integration-test

6. Membangun Proyek Maven

Untuk membangun proyek Maven, kita perlu menjalankan salah satu siklus hidup dengan menjalankan salah satu tahapannya:

mvn deploy

Ini akan menjalankan seluruh siklus hidup default . Alternatifnya, kita bisa berhenti di tahap install :

mvn install

Tetapi biasanya kami akan menggunakan perintah:

mvn clean install

Untuk membersihkan project terlebih dahulu - dengan menjalankan siklus proses bersih - sebelum build baru.

Kami juga dapat menjalankan hanya tujuan tertentu dari plugin:

mvn compiler:compile

Perhatikan bahwa jika kami mencoba membangun proyek Maven tanpa menentukan fase atau tujuan, itu akan menyebabkan kesalahan:

[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal

7. Kesimpulan

Dalam artikel ini, kita membahas siklus pembuatan Maven serta hubungan antara fase dan tujuan Maven.