Saya baru mengenal Maven, saya memiliki proyek web berbasis Java dengan maven yang dikonfigurasi di MyEclipse saya.
Sekarang jika saya memodifikasi file java apa yang harus saya lakukan Run as -> Mvn install
atau tidak Mvn package
?
Saya baru mengenal Maven, saya memiliki proyek web berbasis Java dengan maven yang dikonfigurasi di MyEclipse saya.
Sekarang jika saya memodifikasi file java apa yang harus saya lakukan Run as -> Mvn install
atau tidak Mvn package
?
Jawaban:
dari http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
package
: ambil kode yang dikompilasi dan kemas dalam format yang dapat didistribusikan, seperti JAR.
install
: instal paket ke repositori lokal, untuk digunakan sebagai ketergantungan pada proyek lain secara lokal
Jadi jawaban untuk pertanyaan Anda adalah, itu tergantung pada apakah Anda ingin itu diinstal ke dalam repo lokal Anda. Instal juga akan menjalankan paket karena lebih tinggi di tumpukan fase tujuan.
deploy
dilakukannya. Jika Anda menggantinya dengan package
, itu tidak akan digunakan untuk Nexus.
mvn install
adalah opsi yang paling sering digunakan.
mvn package
jarang digunakan, hanya jika Anda men-debug beberapa masalah dengan proses pembuatan pakar.
Lihat: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Perhatikan bahwa mvn package
hanya akan membuat file jar.
mvn install
akan melakukan itu dan menginstal file toples (dan kelas dll) di tempat yang tepat jika kode lain tergantung pada guci tersebut.
Saya biasanya melakukan mvn clean install
; ini menghapus target
direktori dan membuat ulang semua stoples di lokasi itu.
Bersih membantu dengan hal-hal yang tidak dibutuhkan atau dihapus yang kadang-kadang bisa menghalangi.
Alih-alih men-debug (beberapa waktu) baru mulai segar sepanjang waktu.
Dari referensi Siklus Hidup , instalasi akan menjalankan tes integrasi proyek, paket tidak akan.
Jika Anda benar-benar tidak perlu menginstal artefak yang dihasilkan, gunakan setidaknya verifikasi .
Anda juga harus mencatat bahwa jika proyek Anda terdiri dari beberapa modul yang saling bergantung satu sama lain, Anda harus menggunakan "install" daripada "package", jika tidak build Anda akan gagal, karena ketika Anda menggunakan perintah install, modul A akan dikemas dan dikerahkan ke repositori lokal dan kemudian jika modul B membutuhkan modul A sebagai dependensi, ia dapat mengaksesnya dari repositori lokal.
Jika Anda tidak menggunakan repositori jarak jauh (seperti artifactory), gunakan yang lama:
mvn clean install
Topik yang lumayan tua tapi AFAIK, jika Anda menjalankan repositori Anda sendiri (mis: dengan artifactory) untuk berbagi tabung di antara tim Anda, Anda mungkin ingin menggunakan
mvn clean deploy
sebagai gantinya.
Dengan cara ini, server integrasi berkelanjutan Anda dapat memastikan bahwa semua dependensi dimasukkan dengan benar ke repositori jarak jauh Anda. Jika Anda melewatkan satu, mvn tidak akan dapat menemukannya di repositori CI local m2 Anda.
package - mengambil kode yang dikompilasi dan mengemasnya dalam format yang dapat didistribusikan, seperti file JAR atau WAR. instal - instal paket ke dalam repositori lokal, untuk digunakan sebagai ketergantungan pada proyek lain secara lokal
Cara yang tepat adalah mvn package
jika Anda melakukan hal-hal dengan benar untuk bagian inti dari build Anda maka seharusnya tidak perlu menginstal paket Anda di repositori lokal.
Selain itu jika Anda menggunakan Travis Anda dapat "cache" dependensi Anda karena itu tidak akan menyentuh Anda $HOME.m2/repository
jika Anda menggunakan paket untuk proyek Anda sendiri.
Dalam kepraktisan jika Anda bahkan berusaha melakukan hal mvn site
yang biasanya perlu Anda lakukan mvn install
sebelumnya. Ada terlalu banyak bug dengan salah satu site
atau banyak plugin yang tidak terawat.
Itu tergantung pada apa yang ingin Anda capai setelah mengubah file Java. Sampai Anda ingin menguji proses pakar, Anda tidak perlu melakukan apa pun. Eclipse / MyEclipse akan membangun apa yang diperlukan dan menempatkan output di tempat yang sesuai dalam proyek Anda. Anda juga dapat menjalankan atau menyebarkannya (jika itu proyek web, misalnya), tanpa perlu melakukan apa pun secara eksplisit dengan pakar. Pada akhirnya, untuk menginstal proyek Anda di repositori maven, Anda harus melakukan instalasi maven. Anda juga dapat memiliki sasaran pakar lain yang ingin Anda jalankan, yang MyEclipse tidak akan lakukan secara otomatis.
Seperti yang saya katakan, itu tergantung pada apa yang ingin Anda lakukan.