Maven tarafından yönetilen bağımlılıklar için Eclipse'ye eklenmiş kaynak jar dosyalarını edinin


176

Eclipse'deki Java projelerimin bağımlılıklarını yönetmek için Maven (ve Maven Eclipse Integration) kullanıyorum. Maven depolarından JAR dosyaları için otomatik indirme özelliği gerçek zamanlı bir tasarruftur. Ne yazık ki API belgeleri ve kaynak kodu içermiyor.

Maven'i kaynak ve javadoc eklerini de otomatik olarak alacak ve Eclipse'e düzgün şekilde kaydedecek şekilde nasıl ayarlayabilirim?


Maven kullanırken her zaman kaynakları ve javadoc'u nasıl indireceğinizi soran ilgili soru : stackoverflow.com/questions/5780758/…
Flow

Yanıtlar:


226

Eminim Eclipse için m2eclipse Maven eklentisi - tam tersi - bunu yapabilir. Hem kaynak dosyaları hem de javadoc'u sizin için otomatik olarak indirecek şekilde yapılandırabilirsiniz.

Bu, Pencere> Tercihler> Maven'e gidip "Artefakt Kaynaklarını İndir" ve "Artefakt JavaDoc'u İndir" seçeneklerini işaretleyerek elde edilir.

Maven Tercihlerinin Ekran Görüntüsü


Evet, m2eclipse kullanmaya yeni başladım ve bunun arabasını alıyor (ve diğer birçok şey maven).
Thilo

44
Bu yanıtların hiçbiri cevap değildir. Neden oylanıyorlar? Navigator görünümünde projeyi kontrol tıklayıp "m2 Maven" -> "Kaynakları İndir" i seçerek kaynakları indirebildim. Daha sonra bağlantılı kaynağa gitmek için sınıfta komut (mac) tıklatmayı başardı.
Alex Worden

8
Derlenmiş JAR zaten indirilmişse, Eclipse kaynağı / Javadoc JAR'ları hemen almaya çalışmaz gibi görünüyor. Eclipse içindeki kaynak / Javadoc'u istediğim POM'lara bağımlılık içeren bir POM'yi değiştirmenin ve derlenmiş JAR zaten Maven depo önbelleğinde olsa bile, bağımlılıkların POM'sini indirmesinin kaynak / Javadoc'u indirdiği anlaşılıyor.
Francis Gagné

13
@Francis - Yukarıdaki değişikliği yaptıktan sonra projenize sağ tıklayın ve "Maven> Projeyi Güncelle ..." yi seçin. Bu, kaynak kavanozlarınızın indirilmesine neden olacaktır.
carbontax

3
Tüm bağımlılıklar için kaynak indirmek yerine, sadece bağımlılık ile birlikte pom'da belirtmek suretiyle bazı bağımlılıklar için indirmek mümkün mü, bağımlılık etiketindeki bazı iç etiketi veya benzeri bir şeyle b olabilir mi?
nanosoft

127
mvn eclipse:eclipse -DdownloadSources=true

veya

mvn eclipse:eclipse -DdownloadJavadocs=true

ya da Spencer K'nin işaret ettiği gibi her iki bayrağı da ekleyebilirsiniz.

Ayrıca, =truebölüm gerekli değildir, böylece kullanabilirsiniz

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

8
ya da her ikisi de! mvn eclipse: eclipse -DdownloadSources = true -DdownloadJavadocs = true Bu yalnızca, indirdiğiniz depoya kaynak ve javadoclar sağlanmışsa çalışır. Bazen bahar gibi sağlanmazlar.
Spencer Kormos

2
Bahar şimdi onları sağlıyor.
Robin Green

Bu cevabın 10 yıldan daha eski olduğunu unutmayın. Maven tutulması yapılandırma dosyaları oluşturmak yerine, tutturmada m2e eklentisini kullanın.
Thorbjørn Ravn Andersen

71

Bu çalışmadaki diğer yanıtlar, ancak komut satırı bağımsız değişkenlerini hatırlamak zorunda kalmak istemiyorsanız, pom.xml dosyanızın maven-eclipse-plugin bölümüne downloadSources ve downloadJavadocs config dosyasını da ekleyebilirsiniz:

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                    ... other stuff ...
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

bunu bağımlılık düzeyi düzeyinde ayarlayabilir miyim?
marcorossi

@marcorossi Üzgünüm, bunun mümkün olup olmadığından emin değilim.
overthink

Bunun uygun olduğuna ikna olmadım. Şüphesiz kaynak ve Javadoc indirme ayarları bir proje tercihi değil, bir kullanıcı tercihi midir? Bunu dosyaya nasıl yerleştireceğiniz hakkında aşağıdaki cevabımı görün settings.xml.
Duncan Jones

Bu uyarıyı aldım: [WARNING] 'build.plugins.plugin.version' org.apache.maven.plugins için: maven-eclipse-plugin eksik. Bunu düzeltmek için aşağıya böyle bir şey ekleyebilirsiniz <artifactId>: <version> 2.9 </version>
Christiaan

16

Kaynak / Javadoc indirme ayarlarını proje pom.xmldosyasına koymamayı tercih ediyorum , çünkü bunlar proje özellikleri değil kullanıcı tercihleri. Bunun yerine, bunları dosyamdaki bir profile yerleştiriyorum settings.xml:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>sources-and-javadocs</id>
      <properties>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
      </properties>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>sources-and-javadocs</activeProfile>
  </activeProfiles>
</settings>

1
Bu settings.xml dosyasını .m2 dosyasına kopyaladım ancak kaynaklar ve javadoc'lar kopyalanmıyor. Aşağıdaki komut açıkça CLI üzerinde kaynakları ve javadocs getiriyor olsa: mvn bağımlılığı: sources bağımlılığı: solve -Dclassifier = javadoc Herhangi bir düşünce?
Arun Gupta

Belki bu işe yarar, ancak lütfen açıklayın, maven eclipse eklentisinin bu yapılandırma ayarlarını nasıl bulması gerekiyor? Küresel mülkler aradığını mı düşünüyorsunuz?
chrisinmtown

9

Projeye sağ tıklayın -> maven -> indirme kaynakları


3
Herkes nasıl maven kaynakları indirmek için değil, nasıl etkinleştirileceğini söyledi! seçeneği etkinleştirdikten sonra
Çad

8

Kaynak kavanozları yerel depodaysa ve Eclipses maven desteğini kullanıyorsanız, kaynaklar otomatik olarak eklenir. mvn dependency:sourcesBelirli bir proje için tüm kaynak kavanozlarını indirmeye çalışabilirsiniz . Yine de aynı belgeleri nasıl yapacağınızdan emin değilim.


Bu benim için çalıştı. Çalıştırdıktan sonra mvn dependency:sources, kaynağı okumak için Eclipse'de tıklamayı başardım. M2e ile ek bir mucking gerekmez. Javadocs indirmek için mvn dependency:sources -Dclassifier=javadoc.
Mat Gessel

4

Meclipse kullanıyorsanız

window -> maven -> Artefakt Kaynaklarını İndir (kontrol seç)

(Hala kaynak penceresi eklerseniz, dosya ekle düğmesine tıklayın ve kaynak ekle penceresini kapatın. Bir sonraki kaynağı görmeye çalıştığınızda doğru kaynağı açacaktır)

Surajz



3

Windows-> pref ..-> Maven'i denedim ama işe yaramıyordu. Bu nedenle mvn eclipse komutu ile yeni bir sınıf yolu oluşturdum: eclipse -DdownloadSources = true ve çalışma alanını bir kez yeniledi. Voila .. Kaynaklar eklendi.

Kaynak kavanoz girişi sınıf yolunda mevcuttur. Böylece yeni yapı sorunu çözdü ...


Çözümünüzle, hangi modülü almak istediğimi seçip seçebilirim. Sadece bu modüle cd ve "mvn eclipse: clean eclipse: eclipse -DdownloadSources = true -T4 -Dmaven.test.skip = true -Denforcer.skip = true" ile oluşturun. Teşekkürler :)
vishwarajanand

2

benim Eclipse helios versiyonumda m2Eclipse yok

window --> maven --> Download Artifact Sources (select check)

Pencerenin altında yalnızca "yeni pencere", "yeni düzenleyici" "açık perspektif" vb.

Projenize sağ tıklarsanız maven -> indirme kaynaklarını seçin

Hiçbir şey olmuyor. hiçbir kaynak indirilmez, pom dosyaları güncellenmez, hangi kaynakların sorulduğu bir pencere açılır.

Tutulma dışında mvn xxx yapmak tehlikelidir - bazı komutlar m2ecilpse ile çalışmaz - Bunu bir kez yaptım ve tüm projeyi kaybettim, tutulmayı yeniden kurmak ve sıfırdan başlamak zorunda kaldım.

Hala servlet-api gibi dış kavanozların kaynağını bulmak ve kullanmak için ecilpse ve maven almanın bir yolunu arıyorum.


2

Maven-eclipse-eklentisi için pom'un kaynak / javadoc içerecek şekilde değiştirilmesi, pom'a eklenen yeni bağımlılıklar için geçerlidir. Mevcut bağımlılıklar için başvurmamız gerekiyorsa, mvn bağımlılığı: sources çalıştırmalıyız. Bunu kontrol ettim.


2

Eclipse-Maven tercihinde indirme kaynağını / javadoc'u kontrol etmek bazen yeterli değildir. Maven'ın bir nedenden dolayı indirememesi durumunda (ağ kesintisi?), Maven bazı * .lastUpdated dosyaları oluşturur, daha sonra tekrar indirilmez. Deneysel çözüm, yapay dizinini .m2 / depodan silmek ve eclipse çalışma alanını indirme kaynağı / javadoc işaretli olarak yeniden başlatmak ve başlangıçta kontrol edilen projeleri güncellemekti. Çalışma alanı yeniden başlatıldıktan sonra, bazı projeler hatalı tutulma ilerlemesi indirilirken yanlışlıkla işaretlenebilir, daha sonra herhangi bir hata temizlenir. Belki bu prosedür çok "bilimsel" değildir, ama benim için başarılı oldu.


1

Kaynak ve javadoc'ları indirmek için maven-eclipse eklentisine pom yapılandırmasını ekledim, ancak yeni bağımlılıklar için varolanları değil, olacağını umuyorum.

Mevcut bağımlılıklar için, paket gezgininde "Maven Bağımlılıkları" na göz attım ve commons-lang-2.5.jar üzerinde sağ tıkladım, Maven seçildi | İndirme Kaynakları ve ... hiçbir şey olmamıştır (ilerleme çubuğu veya herhangi bir şey yaptığını göstermez). Ancak, şimdi commons-lang'de kaynağa atlayabildiğim için indirildi.


1

pom'daki kurulumun kullanılması önerilir:

<project>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <configuration>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
                ... other stuff ...
            </configuration>
        </plugin>
    </plgins>
</build>
...

İlk ben bu hala javadoc ve kaynakları eklemek olmaz düşündüm (i başarısız-den önce o -DdownloadSources seçeneği ile çalıştı).

Ama sürpriz - .classpath dosyası POM varyantını kullanırken kaynaklarını ve javadocunu ekliyor!


1

Indigo (ve muhtemelen Helios) için yukarıda belirtilen onay kutuları burada bulunur:

Pencere -> Tercihler -> Maven


0

Ben de benzer bir sorun vardı ve benim için en iyi çözüm çözüm derlenmiş kodla aynı kavanoza dahil etmek oldu (böylece kavanozdaki belirli bir dizin hem içerir Foo.javave Foo.class). Eclipse, kaynağı otomatik olarak derlenen kodla ilişkilendirir ve JavaDoc'u kaynaktan otomatik olarak sağlar. Açıkçası, bu sadece artefaktı kontrol ederseniz faydalıdır.


0

Özellikleri Proje Düzeyi veya Kullanıcı Özellikleri düzeyinde Ayarladıktan sonra, lütfen bir Maven -> Projeyi Güncelle (Güncellemeyi Zorla) yapın. Kaynakları indirir

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.