1. Gambaran keseluruhan
Dalam tutorial ini, kita akan meneroka pelbagai kitaran hidup dan fasa Maven yang berbeza.
Kami juga akan membincangkan hubungan teras antara Matlamat dan Fasa.
2. Kitaran Hidup Membina Maven
Pembinaan Maven mengikuti kitaran hidup tertentu untuk menyebarkan dan menyebarkan projek sasaran.
Terdapat tiga kitaran hidup terbina dalam:
- lalai: kitaran hidup utama kerana bertanggungjawab untuk pelaksanaan projek
- clean: untuk membersihkan projek dan membuang semua fail yang dihasilkan oleh binaan sebelumnya
- laman web: untuk membuat dokumentasi tapak projek
Setiap kitaran hidup terdiri daripada urutan fasa. Yang lalai kitaran bina hidup terdiri daripada 23 fasa kerana ia membina kitaran hayat utama.
Sebaliknya, kitaran hidup bersih terdiri daripada 3 fasa, sementara kitaran hidup laman terdiri dari 4 fasa.
3. Fasa Maven
Fasa Maven mewakili tahap dalam kitaran hidup membina Maven . Setiap fasa bertanggungjawab untuk tugas tertentu.
Berikut adalah beberapa fasa yang paling penting dalam kitaran hayat binaan lalai :
- mengesahkan: periksa sama ada semua maklumat yang diperlukan untuk binaan tersedia
- menyusun: menyusun kod sumber
- test-compile: menyusun kod sumber ujian
- ujian: menjalankan ujian unit
- paket: pakej disusun kod sumber ke dalam format yang boleh diedarkan (balang, perang, ...)
- integrasi-ujian: memproses dan menggunakan pakej jika diperlukan untuk menjalankan ujian integrasi
- install: pasang pakej ke repositori tempatan
- menyebarkan: menyalin pakej ke repositori jauh
Untuk senarai lengkap setiap fasa kitaran hidup, lihat Rujukan Maven.
Fasa dijalankan mengikut urutan tertentu. Ini bermaksud bahawa jika kita menjalankan fasa tertentu menggunakan perintah:
mvn
Ini tidak hanya akan melaksanakan fasa yang ditentukan tetapi juga semua fasa sebelumnya.
Sebagai contoh, jika kita menghadapi mengerahkan fasa - yang merupakan fasa terakhir dalam lalai membina kitaran hayat - yang akan melaksanakan semua fasa sebelum mengerahkan fasa juga, yang merupakan keseluruhan lalai kitaran hayat:
mvn deploy
4. Matlamat Maven
Setiap fasa adalah urutan tujuan, dan setiap tujuan bertanggungjawab untuk tugas tertentu.
Ketika kita menjalankan fasa - semua tujuan yang terikat pada fasa ini dilaksanakan dengan teratur.
Berikut adalah beberapa fasa dan tujuan lalai yang terikat kepada mereka:
- compiler: compile - matlamat kompilasi dari plugin penyusun terikat ke fasa kompilasi
- penyusun: testCompile terikat pada fasa kompilasi ujian
- surefire: ujian terikat pada fasa ujian
- install: install terikat untuk memasang fasa
- jar: jar dan perang: perang terikat pada fasa pakej
Kami dapat menyenaraikan semua tujuan yang terikat pada fasa tertentu dan pemalamnya menggunakan perintah:
mvn help:describe -Dcmd=PHASENAME
Sebagai contoh, untuk menyenaraikan semua matlamat yang terikat pada fasa penyusunan , kita boleh menjalankan:
mvn help:describe -Dcmd=compile
Dan dapatkan output sampel:
compile' is a phase corresponding to this plugin: org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
Yang, seperti yang disebutkan di atas, bermaksud tujuan kompilasi dari plugin penyusun terikat ke fasa kompilasi .
5. Plugin Maven
Plugin Maven adalah sekumpulan matlamat. Walau bagaimanapun, tujuan ini tidak semestinya terikat pada fasa yang sama.
Sebagai contoh, berikut adalah konfigurasi ringkas plugin Maven Failsafe yang bertanggungjawab untuk menjalankan ujian integrasi:
maven-failsafe-plugin ${maven.failsafe.version} integration-test verify
Seperti yang kita lihat, plugin Failsafe mempunyai dua tujuan utama yang dikonfigurasi di sini:
- integrasi-ujian : jalankan ujian integrasi
- mengesahkan : mengesahkan semua ujian integrasi lulus
We can use the following command to list all goals in a specific plugin:
mvn :help
For example, to list all goals in the Failsafe plugin:
mvn failsafe:help
And the output of this will be:
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.
To run a specific goal, without executing its entire phase (and the preceding phases) we can use the command:
mvn :
For example, to run integration-test goal from Failsafe plugin, we need to run:
mvn failsafe:integration-test
6. Building a Maven Project
To build a Maven project, we need to execute one of the life cycles by running one of their phases:
mvn deploy
This will execute the entire default lifecycle. Alternatively, we can stop at the install phase:
mvn install
But usually we'll use the command:
mvn clean install
Untuk membersihkan projek terlebih dahulu - dengan menjalankan kitaran hidup bersih - sebelum binaan baru.
Kami juga hanya dapat menjalankan tujuan khusus pemalam:
mvn compiler:compile
Perhatikan bahawa jika kita cuba membina projek Maven tanpa menentukan fasa atau matlamat, itu akan menyebabkan ralat:
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal
7. Kesimpulannya
Dalam artikel ini, kami membincangkan siklus hidup Maven serta hubungan antara fasa dan tujuan Maven.