Mvn maven'de tam olarak ne yapar


Yanıtlar:


124

Bildiğiniz gibi Maven, Apache tarafından sağlanan ve bağımlılık yönetiminden daha fazlasını yapan bir yapı otomasyon aracıdır. Gerekli tüm bağımlılıkları indiren bir Ant ve Makefile akranı olarak yapabiliriz.

Bir günü mvn install, proje yapılandırmasına göre bir bağımlılık ağacı çerçeveleri pom.xmltüm alt süper altında projeler üzerinde pom.xml(kök POM) ve indirme / adlı bir dizindeki tüm gerekli bileşenleri derler .m2kullanıcının klasörü altında. Projenin hatasız bir şekilde inşa edilebilmesi için bu bağımlılıkların giderilmesi gerekecek vemvn install ve bağımlılıkların çoğunu indirebilen bir yardımcı programdır.

Ayrıca, Maven gibi dependency:resolveherhangi bir özel durumda ayrı ayrı kullanılabilen başka araçlar da vardır . MVN'nin yapı yaşam döngüsü aşağıdaki gibidir: LifeCycle Bindings

  1. process-resources
  2. compile
  3. process-test-resources
  4. test-compile
  5. test
  6. package
  7. install
  8. deploy

Bu mvn'nin test aşaması bir bayrak kullanılarak yok sayılabilir -DskipTests=true.


9
Sadece bir yan not, testle ilgili tüm hedefleri atlamak istiyorsanız, şunu kullanın: -Dmaven.test.skip = true (-DskipTests = true yerine)
Manoj Shrestha

Bu cevap yüklemek komut sonuçta o netleştirmek için başarısız yükler yerel depoda olduğu lokal paraziti.
PeriChandra

34

Maven belgelerinden herhangi birine baktınız mı, örneğin maven kurulum eklentisi belgeleri ?

Özetle sürüm: projeyi derler ve yerel veri havuzunuza kurar.


Diyelim ki bir açık kaynak kütüphanesinde "mvn install" komutunu çalıştırdınız. Sonra, ilk derlediğimiz açık kaynak kitaplığını kullanan bir projede "mvn install" komutunu çalıştırırsınız. "Mvn install" çalıştırılırken, JAR'lar önce yerel repoda aranır mı? Yoksa POM dosyasına mı bağımlı?
Kevin Meredith

1
@Kevin Önce yerel olmalı, çünkü bu bir nokta. Yerel depoda değilse, yapılandırdığınız havuzlara (veya varsayılanlara) bakar ve bulunursa yerel depoya yükler. Her zaman yerel repoyu atlayacak şekilde yapılandırabileceğinizden şüpheleniyorum, ancak bakmadan nasıl yapacağımı bilmiyorum.
Dave Newton

17
Var sen Maven için kanonik belgeler baktı? Apache'nin sitesi mvn kurulumunun amacını şu şekilde açıklıyor: "Çoğu durumda, install: install hedefi herhangi bir konfigürasyona ihtiyaç duymaz, varsayılan derleme yaşam döngüsünün kurulum aşamasında projenin POM'sine ve yapay dosyaya yüklenmesi gerekir." Apache'nin dokümanı, 'mvn install'in aslında poster gibi ve benim gibi insanların cevabı aradıklarını açıklayamamasıdır. Mükemmel makul bir soru.
bethesdaboys


6

install:installAmaç «eklentisini yükleyin Apache Maven» tarafından sağlanır:

Apache Maven Kurulum Eklentisi

Yükleme Eklentisi, yükleme aşamasında yerel depoya yapay nesneler eklemek için kullanılır. Yükleme Eklenti POM bilgileri kullanır ( groupId, artifactId, version) yerel depo içinde eser için uygun konumunu belirlemek için.

Yerel depo, yapı için gereken tüm eserlerin depolandığı yerel önbellektir. Varsayılan olarak, kullanıcının giriş dizininde ( ~/.m2/repository) bulunur, ancak konum ~/.m2/settings.xml,<localRepository> öğeyi .

- Apache Maven Kurulum Eklentisi - Giriş .

Bunu söyledikten sonra, tam amaç:

install:install projenin ana yapısını (JAR, WAR veya EAR), POM'sini ve belirli bir proje tarafından üretilen herhangi bir bağlı yapıyı (kaynaklar, javadoc, vb.) otomatik olarak kurmak için kullanılır.

- Apache Maven Kurulum Eklentisi - Giriş .

Hedefle ilgili ek ayrıntılar için lütfen Apache Maven Kurulum Eklentisine bakın - install: install sayfasına bakın.

Genel olarak yapı yaşam döngüsü hakkında ve hedefin yapı yaşam döngüsünde bulunduğu yere ilişkin ek ayrıntılar için lütfen Maven - Yapı Yaşam Döngüsüne Giriş sayfasına bakın.


3

Kısa cevap

mvn yüklemek

  • belirtilen tüm objeyi (bağımlılıklar) ekler pom için, yerel depo (uzaktan kaynaklardan).

2

-DskipTests=true kısa biçimidir -Dmaven.test.skip=true

Değişiklik yapılsın Setting.xml sizin de .m2 klasörde. Yerel repo bağlantısını kullanabilirsiniz, böylece bir kez indirilen kavanozlar tekrar tekrar indirilmemelidir.

<url>file://C:/Users/admin/.m2/repository</url>
 </repository>

0

mvn install birincil işler için 1) Bağımlılıkları indirin ve 2) Proje oluşturmak

yaparken 1 bugünlerde intellij gibi kimlikler tarafından halledilir (onlar POM herhangi bağımlılık için indirin)

mvn install büyük ölçüde şimdi iş 2 için kullanılır .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.