Sebutkan semua kemungkinan gol di Maven 2?


105

Saya baru mengenal Maven, datang dari dunia Semut.

Apakah mungkin untuk membuat daftar semua tujuan yang mungkin (termasuk, katakanlah, semua plugin) yang dapat Anda jalankan?

Saya dapat melihat bahwa dulu ada sebuah -gbendera di Maven 1, tetapi ini tidak tersedia di versi 2.


4
Ini membuat saya gila bahwa maven tidak dapat menjawab pertanyaan ini tanpa halaman xml! Barang bagus!
Kieveli

Jawaban:


120

Tujuan yang Anda tunjukkan di baris perintah terkait dengan siklus hidup Maven. Misalnya, buildsiklus hidup (Anda juga memiliki cleandan sitesiklus hidup yang berbeda) terdiri dari fase-fase berikut:

  • validate: memvalidasi proyek dengan benar dan semua informasi yang diperlukan tersedia.
  • compile: mengkompilasi kode sumber proyek.
  • test: uji kode sumber yang dikompilasi menggunakan kerangka pengujian unit yang sesuai. Tes ini tidak memerlukan kode untuk dikemas atau diterapkan.
  • package: ambil kode yang telah dikompilasi dan kemas dalam format yang dapat didistribusikan, seperti JAR.
  • integration-test: memproses dan menerapkan paket jika perlu ke dalam lingkungan tempat pengujian integrasi dapat dijalankan.
  • verify: jalankan pemeriksaan untuk memverifikasi bahwa paket tersebut valid dan memenuhi kriteria kualitas
  • install: instal paket ke dalam repositori lokal, untuk digunakan sebagai dependensi dalam proyek lain secara lokal.
  • deploy: dilakukan dalam lingkungan integrasi atau rilis, salin paket akhir ke repositori jarak jauh untuk dibagikan dengan pengembang dan proyek lain.

Anda dapat menemukan daftar plugin "inti" di sini , tetapi ada banyak plugin lain, seperti plugin codehaus, di sini .


1
lihat Referensi Siklus Hidup. Semua komponen siklus hidup dicantumkan di sana.
Salandur

51

Apakah mungkin untuk membuat daftar semua tujuan yang mungkin (termasuk, katakanlah, semua plugin) yang mungkin untuk dijalankan?

Maven tidak memiliki built-in apa pun untuk itu, meskipun daftar fasenya terbatas (daftar tujuan plugin tidak karena daftar plugin tidak).

Tetapi Anda dapat mempermudah dan memanfaatkan kekuatan penyelesaian bash (menggunakan cygwin jika Anda menggunakan Windows) seperti yang dijelaskan dalam Panduan penyelesaian otomatis Maven 2.x menggunakan BASH (tetapi sebelum memilih skrip dari panduan ini, baca lebih lanjut ).

Agar semuanya berfungsi, pertama-tama ikuti panduan ini untuk menyiapkan penyelesaian bash di komputer Anda. Kemudian, saatnya mendapatkan skrip untuk Maven2 dan:

  • Meskipun Anda bisa menggunakan salah satu dari panduan mini
  • Saat Anda menggunakan versi perbaikan yang dilampirkan ke MNG-3928
  • Meskipun Anda dapat menggunakan skrip acak yang ditemukan di internet (lihat sumber daya jika Anda penasaran)
  • Saya pribadi menggunakan skrip Bash Completion dari PPA Ludovic Claude (yang dibundel ke dalam versi paket mavendi Ubuntu) yang dapat Anda unduh dari HEAD. Itu yang terbaik .

Di bawah ini, inilah yang saya dapatkan hanya untuk mengilustrasikan hasilnya:

$ mvn [tab] [tab]
 Tampilkan semua 377 kemungkinan? (y atau n)
semut: semut 
semut: bersih 
semut: tolong 
antrun: tolong 
antrun: lari 
arketipe: merangkak 
arketipe: buat 
arketipe: buat-dari-proyek 
arketipe: menghasilkan 
arketipe: bantuan 
perakitan: perakitan 
perakitan: direktori 
perakitan: direktori-tunggal 
perakitan: bantuan 
perakitan: tunggal  
... 

Tentu saja, saya tidak pernah menelusuri 377 kemungkinan, saya menggunakan penyelesaian. Tapi ini memberi Anda gambaran tentang ukuran daftar "a" :)

Sumber daya


2
Belum melihatnya, tetapi apakah Maven Shellalat baru ini menyediakan penyelesaian otomatis, yang bisa berguna di sini?
Romain Linsolas

2
@romain Tidak, mvnshtidak memberikan penyelesaian (setidaknya tidak dalam versi yang saya miliki di mesin saya). Saya memeriksa sebelum menjawab :)
Pascal Thivent

7

Jika Anda menggunakan IntelliJ IDEA, Anda dapat menelusuri semua tujuan / tugas maven (termasuk plugin) di Maven Projectstab:

Proyek Maven


2
Saya ingin melakukan ini melalui beberapa perintah. Bagaimana IntelliJ IDEA melakukannya?
nacho4d

0

Mari membuatnya sangat sederhana:

Siklus Hidup Maven: 1. Bersihkan 2. Default (build) 3. Situs

Fase Maven dari Siklus Hidup Default: 1. Validasi 2. Kompilasi 3. Pengujian 4. Paket 5. Verifikasi 6. Instal 7. Terapkan

Catatan: Jangan campur atau bingung dengan tujuan maven dengan siklus hidup maven.

Lihat Dasar-dasar Siklus Hidup Maven Build 1


0

Siklus Hidup Build terdiri dari Fase

Masing-masing siklus proses build ini ditentukan oleh daftar fase build yang berbeda, di mana fase build mewakili satu tahapan dalam siklus proses.

Misalnya, siklus hidup default terdiri dari fase-fase berikut (untuk daftar lengkap fase siklus hidup, lihat Referensi Siklus Hidup):

  • memvalidasi - memvalidasi proyek dengan benar dan semua informasi yang diperlukan tersedia
  • kompilasi - kompilasi kode sumber proyek
  • uji - uji kode sumber yang dikompilasi menggunakan kerangka pengujian unit yang sesuai. Tes ini tidak memerlukan kode untuk dikemas atau diterapkan
  • paket - ambil kode yang telah dikompilasi dan paketkan dalam format yang dapat didistribusikan, seperti JAR. verifikasi - jalankan pemeriksaan apa pun pada hasil uji integrasi untuk memastikan kriteria kualitas terpenuhi
  • install - instal paket ke dalam repositori lokal, untuk digunakan sebagai dependensi dalam proyek lain secara lokal
  • deploy - selesai di lingkungan build, menyalin paket akhir ke repositori jarak jauh untuk dibagikan dengan developer dan project lain.

Fase siklus hidup ini (ditambah fase siklus hidup lainnya yang tidak ditampilkan di sini) dijalankan secara berurutan untuk menyelesaikan siklus hidup default. Mengingat fase siklus hidup di atas, ini berarti bahwa ketika siklus hidup default digunakan, Maven pertama-tama akan memvalidasi proyek, kemudian akan mencoba mengkompilasi sumber, menjalankannya terhadap pengujian, mengemas binari (misalnya jar), menjalankan pengujian integrasi terhadap sumber tersebut. paket, verifikasi tes integrasi, instal paket terverifikasi ke repositori lokal, lalu terapkan paket yang diinstal ke repositori jarak jauh.

Sumber: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.