Maven bağımlılıklarını kullanmak için Eclipse derleme yolu nasıl yapılandırılır?


124

Bir projedeki bağımlılıkları yönetmek için Maven'ın sağladığı özelliklerden yararlanmak istiyorum. Maven'in nasıl çalıştığına dair kısa anlayışım, ihtiyaç duyulan JAR'ları elde edeceği ve ardından projeyi bu kütüphanelerle inşa edeceğidir.

Şu anda test olarak oluşturulmuş basit bir POM dosyam var:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

Bağımlılıkları yönetmek için genellikle projeyi veya JAR'ı derleme yoluna eklerim ve ardından projemi oluşturabilirim ..

Ancak M2Eclipse kullanılırken , bağımlılıklar otomatik olarak yapı yoluna eklenmez. Eclipse'e bağımlılıkları Maven'in yönettiğini bildirmek için herhangi bir yapılandırma var mı?

Yanıtlar:


116

Projenize sağ tıklarsanız, "maven" altında "bağımlılık yönetimini etkinleştir" seçeneği bulunmalıdır. Bu kadar.


2
mvn eclipse: eclipse ile oluşturulmuş bir projeyi içeri aktarırsanız m2eclipse bunu varsayılan olarak yapmaz, bu nedenle bu her zaman insanları ayağa kaldırır.
matt

28
Aslında projem için zaten etkinleştirildi. Belki de mevcut bir projeye bir POM dosyası eklemeyi seçtiğim için? Ancak Maven> Update proje yapılandırmasını yapmak benim için düzeltmiş gibi görünüyor. Ayrıca, sonunda projeyi düzeltebileceğim o araç çubuğunu keşfetmeme yol açan cevabındı. Çok teşekkürler
James Goodwin

12
Ya sağ tıklama menüsünde m2eclipse kurulu görünmeme rağmen "Maven" seçeneği yoksa?
dfrankow

85
Ah, "Yapılandır" => "Maven Projesine Dönüştür" arkadaşınız!
dfrankow

2
@dfrankow "Yapılandır" => "Maven Projesine Dönüştür" seçeneği yoksa ne olur?
vasilakisfil

67

eğer yürütürsen

mvn eclipse:clean

bunu takiben

mvn eclipse:eclipse

Tutulma .classpathdosyasını sizin için hazırlayacaksanız . Yani bu komutlar, komut satırından yani tutulma dışında maven'e karşı çalıştırılır.


Bunun bağımlılıklarınıza başvurmak için bir sınıf yolu değişkeni (M2_REPO) kullanarak çalıştığını unutmayın, m2eclipse kullanmaz ve siz projede çalışırken eklediğiniz bağımlılıkları aldığına inanmıyorum - ancak bunu elde etmek için harika ilk kurulum gidiyor
matt b

@matt b: Bağımlılıklarınız her değiştiğinde mvn eclipse: eclipse'i yeniden yapmanız gerekir.
Buhb

Buhb'nin söylediğine eklemek için, mnv eclipse yapın: komut satırında tutulma yapın ve pom.xml'ye her deps eklediğinizde Eclipse projesini yenileyin.
Binil Thomas

5
M2eclipse eklentisini kullanırken buna gerek yoktur.
Pascal Thivent

3
M2eclipse eklentisini kullanıyorum ve mevcut bir maven projesini tutulmaya aktardıktan sonra sorunu yaşıyordum. Yapıyor mvn eclipse:cleanve mvn eclipse:eclipseaslında benim için sorunu çözdü.
aioobe

29

Bahsettiğiniz gibi m2eclipse kullandığınızı varsayıyorum. Ancak projenizi Eclipse altında oluşturup oluşturmadığınız belli değil, bu yüzden tüm durumları ele almaya çalışacağım.

  1. Eclipse (Ctrl + N> Java Projesi) altında bir "Java" projesi oluşturduysanız , Paket Gezgini görünümünde projeye sağ tıklayın ve Maven> Bağımlılık Yönetimini Etkinleştir'e gidin (ilk proje yapısına bağlı olarak, maven'ınkiyle eşleşecek şekilde, örneğin derleme yolundaki kaynak klasörlere ekleyerek ).src/java

  2. Eclipse (Ctrl + N> Maven Projesi) altında bir "Maven Projesi" oluşturduysanız, zaten "Maven'e hazır" olmalıdır.

  3. Eğer Eclipse (elle veya bir arketip ile), sonra da dışarıya bir Maven projesi oluşturduysanız içe Eclipse bunu ( sağ tıklama Paketi Explorer görünümü seçin Al ...> Maven Projeleri ) ve "Maven'in hazır" olacaktır.

Şimdi, bir bağımlılık eklemek için , projeye sağ tıklayın ve Maven> Bağımlılık Ekle'yi seçin ) veya pomu manuel olarak düzenleyin.

Not: m2eclipse kullanıyorsanız maven-eclipse eklentisini kullanmaktan kaçının. Buna kesinlikle gerek yok, kafa karıştırıcı olacak, biraz karışıklık yaratacak. Hayır, gerçekten, ne yaptığınızı gerçekten bilmediğiniz sürece kullanmayın.


2
Maven-eclipse-eklentisinin garip çözülmemiş bağımlılık hatalarımın nedeni olduğunu öğrendim. Teşekkürler!
vaughan

1
Sadece resmi siteden indirilen EclipseNeon kullanıyorum .. Standart java projesini oluşturduktan sonra menüde Maven seçeneği yok.Ayrı bir şey yüklememiz mi gerekiyor yoksa her şey zaten Neon ile indirildi mi?
Ewoks

@Pascal Thivent, Maven projesini içe aktardım. Bunun için bir çözüm bulamıyorum
Syed

19

Bunu .classpath dosyasına ekleyin ..

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

Teşekkürler


1
evet, bunu son birkaç yıldır her yerde manuel olarak eklemem gerekiyor .... Neden maven bağımlılıklarını otomatik olarak yeniden yapılandırmak için eclipse eklentilerini uygulamaya koymuyorlar?
jilet

1
Bu çözüm için teşekkürler. Bu benim için çalıştı. Yanlışlıkla .project ve .classpath dosyalarını sildim. Bu çözüm, sınıf yoluna maven bağımlılıkları eklemem için çalıştı,
Tahir Mehmood

Yukarıdaki .classpath dosyasını otomatik olarak oluşturmak için kısayol Proje -> Maven -> Projeyi Güncelle'dir Aksi takdirde sadece Alt + F5
Venkateswara Rao

Benim için de çalıştı. Eksik bağımlılıklarımın çoğunu çözdüm ancak hala birkaç sorun var, bu yüzden daha kullanıcı dostu çözümlerin işe yarayıp yaramadığını merak ediyorum çünkü bir yerde küçük bir hata var (ancak bu davranış sorunu gidermeye yardımcı olmuyor ...)
xenoid

14

Yapılandır> Maven projesine dönüştür projesine sağ tıklayın

Ardından projeniz için Maven ile ilgili tüm Menüyü görebilirsiniz.


ilk etapta bir mvn projesi oluşturmadıysanız doğru yol
Hannes Schneidermayer

10

Bunu beğendim ..

Projeye sağ tıklayın -> yapılandır -> maven projesine dönüştür. Projeye sağ tıklayın -> maven -> bağımlılıklar ekleyin.


5

Eclipse'de (Mars) şu adrese gidin:

Proje Özellikleri -> Maven. "Çalışma alanı projelerinden bağımlılıkları çöz" seçeneğinin devre dışı bırakıldığından emin olun .


Bu, orijinal sorunu çözmedi, ancak haftalardır yaşadığım başka bir dırdır sorununu da çözdü - Bu seçeneği devre dışı bıraktıktan sonra, yalnızca bir maven komut satırından çalışan projem şimdi tutulma içinde tekrar çalışıyor! Teşekkür ederim!
Bill Hileman

4

Maven'i veya yapılandırma menülerini bulamadım ancak sorunumu çözen aşağıdaki düğmeyi buldum:

görüntü açıklamasını buraya girin


2

M2eclipse doğru bir şekilde kurulduğunda, bağımlılıkları otomatik olarak eklemelidir. Ancak, eclipse proje dosyalarını aşağıdakileri girerek oluşturmalısınız:

mvn eclipse:m2eclipse

veya alternatif olarak m2eclipse kullanmıyorsanız:

mvn eclipse:eclipse

3
Dikkat: 2.8 sürümü maven-eclipse-eklentisi artık "eclipse: m2eclipse" i desteklemediğinden (neden / bilgi bulamadım)
Wolkenarchitekt

1

Bazı sorunlara neden olan küçük bir varyasyon vardı - bir proje içinde birden çok alt proje. Bu durumda, bir POM içeren her bir klasöre gitmem, mvn eclipse: eclipse komutunu çalıştırmam ve ardından sınıf yolu girdilerini proje sınıf yolu dosyama manuel olarak kopyalayıp / birleştirmem gerekiyordu.


1

Daha yeni Eclipse sürümleri için (> = Mars) projeye sağ tıklayın> yapılandırın> Maven projesine dönüştür


1

Cevaplarımı birkaç nedenden dolayı ekliyorum:

  • Bir şekilde listelenen cevapların hiçbiri sorunumu doğrudan çözmedi.
  • Maven altında "Bağımlılık yönetimini etkinleştir" bulamadım. Eclipse 4.4.2 derlemesini 4 Şubat 2015 Çarşamba kullanıyorum.

Bana yardımcı olan şey, Maven altında "Proje Güncelle" olarak adlandırılan başka bir seçenekti ve sonra tıkladığımda, "Anlık Görüntü / Sürümleri Güncellemeye Zorla" yazan bir onay kutusu olan bu pencere açılıyor. Bu onay kutusunun gerçek amacı farklı biliyorum ama bir şekilde bağımlılıklar sorununu çözdü. görüntü açıklamasını buraya girin


1

Bunların hiçbiri sorunumu çözmedi. ama pom.xml'ye tıklarsanız, altta bağımlılıklar adlı bir sekme var. bu sekmede biri bağımlılıklar diğeri bağımlılık yönetimi olarak adlandırılan 2 bölüme ayrılmıştır. bağımlılık bölümündeki her şeyi seçin ve bağımlılık yönetimi denetimi altında olmak için ekle'yi tıklayın. projenizi kapatın ve yeniden açın.


0

Belki M2Eclipse yerine maven-eclipse-eklentisine bakabilirsiniz.

Orada temel olarak maven-eclipse-eklenti yapılandırmasını pom.xml dosyanıza eklersiniz ve ardından Eclipse mvn eclipse:eclipseiçin gerekli .projectve .classpathdosyaları oluşturacak olanı çalıştırırsınız . O zaman Eclipse'de doğru inşa yoluna sahip olacaksınız.


tutulma: tutulma kötüdür, Maven'e güvenmek yerine tüm kütüphaneleri tek tek bağımlılıklarınıza ekler
jilet

0

POM'unuzun adlandırma kuralına uyduğundan ve küçük harflerle pom.xmlve NOT olarak adlandırıldığından emin olun POM.xml.

Benim durumumda her şey doğruydu, ancak Eclipse hala Sağ tıklamaya çalışırken şikayet etti ve Update project configuration- bana POM'un okunamadığını söyledi. Adı küçük harfe değiştirdi - pom.xmldan POM.xml- ve işe yaradı.


0

Ben de bu konuyla tanıştım. İçine bağımlılıklar eklediğimde pom.xml, yerel klasöre baktım /Users/xyz/.m2/ve kavanozlar zaten oraya indirildi, ancak tutulmanın yapı yolunu ekleyemiyorum.

Tutulma Sürümüm : Mars.2 Sürümü (4.5.2)

sağ tıklama projesi > Maven > Çalışma Alanı Çözünürlüğünü Etkinleştir

Ve bu sorunumu çözdü.


0

Tipik olarak, standart bir Maven projesi olarak yapılandırıldığınızı varsayarak burada projeye özgü herhangi bir şey olmadığından .classpath dosyasını çalışan bir projeden kopyalayabilirsiniz.


0

Bu benim için Eclipse Oxygen'de (4.7.0) çalıştı:

Sağ tıklayın Proje -> Maven -> Maven Profilleri Seç ... ardından Depo Proxy kutusunu işaretleyin ve Tamam'a basın.

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.