Maven'de yeniyim, MyEclipse'imde yapılandırılmış maven ile Java tabanlı bir web projem var.
Ben herhangi bir java dosyalarını modifiye Şimdi eğer o zaman ben yapmama gerek var mı Run as -> Mvn install
yoksa Mvn package
?
Maven'de yeniyim, MyEclipse'imde yapılandırılmış maven ile Java tabanlı bir web projem var.
Ben herhangi bir java dosyalarını modifiye Şimdi eğer o zaman ben yapmama gerek var mı Run as -> Mvn install
yoksa Mvn package
?
Yanıtlar:
dan http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
package
: derlenen kodu alın ve JAR gibi dağıtılabilir bir biçimde paketleyin.
install
: diğer projelerde yerel olarak bağımlılık olarak kullanmak için paketi yerel depoya yükleyin
Yani sorunuzun cevabı, yerel deponuza yüklenmesini isteyip istemediğinize bağlı. Hedef aşaması yığınında daha yüksek olduğu için yükleme de paketi çalıştıracaktır.
deploy
bu. İle değiştirirseniz package
, Nexus'a dağıtılmaz.
mvn install
en sık kullanılan seçenektir.
mvn package
nadiren kullanılır, yalnızca maven derleme süreciyle ilgili bazı sorunlarda hata ayıklıyorsanız.
Bakınız: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
mvn package
Bunun yalnızca bir jar dosyası oluşturacağını unutmayın .
mvn install
bunu yapacak ve kavanoz (ve sınıf vb.) dosyalarını başka kod bu kavanozlara bağlıysa uygun yerlere yükleyecektir.
Ben genellikle a mvn clean install
; bu, target
dizini siler ve o konumdaki tüm kavanozları yeniden oluşturur.
Temizlik, bazen araya girebilecek gereksiz veya çıkarılmış şeylere yardımcı olur.
Bunun yerine, hata ayıklama (bazen) her zaman yeni başlar.
Gönderen Ömrü referans , yüklemek projenin entegrasyon testler yapar, paket olmaz.
Oluşturulan yapıları gerçekten yüklememeniz gerekiyorsa, en azından doğrulamayı kullanın .
Ayrıca, projeniz birbirine bağlı birkaç modülden oluşuyorsa, "paket" yerine "kur" kullanmanız gerektiğini, aksi takdirde derlemenizin başarısız olacağını ve yükleme komutunu kullandığınızda modül A'nın paketleneceğini unutmayın. ve yerel depoya konuşlandırılır ve daha sonra modül B, bağımlılık olarak modül A'ya ihtiyaç duyarsa, yerel depodan ona erişebilir.
Eğer ediyorsanız değil bir kullanarak uzaktan (Artifactory gibi) depo, düz eski kullanın:
mvn clean install
Oldukça eski bir konu ama AFAIK, takımınız / takımlarınız arasında kavanoz paylaşmak için kendi deponuzu (örneğin: yapay ile) çalıştırırsanız, kullanmak isteyebilirsiniz
mvn clean deploy
yerine.
Bu şekilde, sürekli bütünleştirme sunucunuz, tüm bağımlılıkların uzak deponuza doğru şekilde itildiğinden emin olabilir. Birini kaçırdıysanız, mvn CI yerel m2 deponuzda bulamayacaktır.
paket - derlenen kodu alır ve JAR veya WAR dosyası gibi dağıtılabilir bir biçimde paketler. install - yerel olarak diğer projelerde bağımlılık olarak kullanmak için paketi yerel depoya kurun
Uygun şekilde mvn package
size yapı çekirdek kısmı için doğru şeyler yaptı o zaman yerel depoda paket kurmak gerek yoktur olmalıdır.
Buna ek olarak, Travis kullanırsanız, bağımlılıklarınızı "önbelleğe alabilirsiniz" çünkü $HOME.m2/repository
kendi projeniz için paket kullanırsanız , bağımlılıklarınız size dokunmayacaktır .
Pratikte, bir yapmaya kalkışsanız bile, mvn site
genellikle daha mvn install
önce bir şey yapmanız gerekir . Birinde çok fazla hata var site
veya çok sayıda bakımsız eklenti var.
Java dosyasını değiştirdikten sonra ne elde etmeye çalıştığınıza bağlıdır. Maven sürecini test etmek isteyene kadar hiçbir şey yapmanıza gerek kalmaz. Eclipse / MyEclipse, gerekli olanı inşa edecek ve çıktıyı projeniz içinde uygun yere koyacaktır. Ayrıca, maven ile açıkça herhangi bir şey yapmanız gerekmeden onu çalıştırabilir veya dağıtabilirsiniz (örneğin bir web projesiyse). Sonunda, projenizi maven deposuna kurmak için bir maven kurulumu yapmanız gerekecek. MyEclipse'in otomatik olarak yapmayacağı, yürütmek istediğiniz başka maven hedefleriniz de olabilir.
Dediğim gibi, ne yapmak istediğinize bağlı.