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
?
134
deploy
dilakukannya. Jika Anda menggantinya denganpackage
, 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 menghapustarget
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.
sumber
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 .
sumber
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.
sumber
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.
sumber
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
sumber
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 lakukanmvn install
sebelumnya. Ada terlalu banyak bug dengan salah satusite
atau banyak plugin yang tidak terawat.sumber
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.
sumber