mvn clean install vs. deploy vs. rilis

132

Saya baru belajar pakar, dan kami baru-baru ini perlu lebih dan lebih lagi. Saya ingin tahu perbedaannya

mvn clean install

mvn release

mvn deploy

Harap sejelas mungkin.

myusuf3
sumber

Jawaban:

223

The clean, installdan deploy fase berlaku fase siklus hidup dan memohon mereka akan memicu semua tahapan sebelumnya mereka, dan tujuan terikat untuk fase-fase ini.

bersihkan instalasi

Perintah ini memanggil cleanfase dan kemudian installfase secara berurutan:

  • clean: menghapus file yang dihasilkan saat membangun di direktori proyek ( targetsecara default)
  • install: instal paket ke dalam repositori lokal , untuk digunakan sebagai ketergantungan pada proyek lain secara lokal .

mvn deploy

Perintah ini memanggil deployfase:

  • deploy: menyalin paket terakhir ke repositori jarak jauh untuk berbagi dengan pengembang dan proyek lain .

lepaskan mvn

Ini bukan fase yang valid atau tujuan sehingga ini tidak akan melakukan apa pun. Tetapi jika mengacu pada Plugin Maven Release yang digunakan untuk mengotomatisasi manajemen rilis. Melepaskan proyek dilakukan dalam dua langkah: preparedan perform. Seperti yang didokumentasikan:

Mempersiapkan rilis melewati fase rilis berikut:

  • Periksa bahwa tidak ada perubahan yang tidak dikomit di sumber
  • Periksa bahwa tidak ada dependensi SNAPSHOT
  • Ubah versi dalam POM dari x-SNAPSHOT ke versi baru (Anda akan diminta untuk menggunakan versi)
  • Ubah informasi SCM di POM untuk memasukkan tujuan akhir tag
  • Jalankan tes proyek terhadap POM yang dimodifikasi untuk mengonfirmasi semuanya berjalan dengan baik
  • Komit POM yang dimodifikasi
  • Beri tag pada kode di SCM dengan nama versi (ini akan diminta)
  • Bump versi dalam POM ke nilai baru y-SNAPSHOT (nilai-nilai ini juga akan diminta untuk)
  • Komit POM yang dimodifikasi

Lalu:

Melakukan rilis menjalankan fase rilis berikut:

  • Checkout dari URL SCM dengan tag opsional
  • Jalankan sasaran Maven yang telah ditentukan sebelumnya untuk melepaskan proyek (secara default, gunakan penyebaran situs)

Lihat juga

Thivent Pascal
sumber
1
Bisakah Anda jelaskan ini: Ini bukan fase yang valid atau tujuan sehingga ini tidak akan melakukan apa-apa. Tetapi jika mengacu pada Plugin Maven Release. Jika itu bukan fase atau tujuan, lalu bagaimana kita menyebutnya?
gvlasov
26
  • mvn installakan menempatkan proyek pakar paket Anda ke dalam repositori lokal , untuk aplikasi lokal menggunakan proyek Anda sebagai dependensi.
  • mvn release pada dasarnya akan menempatkan kode Anda saat ini di tag pada SCM Anda, mengubah versi Anda di proyek Anda.
  • mvn deployakan menempatkan proyek pakar paket Anda ke dalam repositori jarak jauh untuk berbagi dengan pengembang lain.

Sumber:

Colin Hebert
sumber