Maven deposundan kaynak JAR'lar alın


Yanıtlar:


785

Maven Micro-Tip: Kaynakları ve Javadocları alın

Maven'i bir IDE'de kullanırken, IDE'nizin kaynak kodunu ve kitaplık bağımlılıklarınız için Javadoc'ları çözmesi gerektiğini sıklıkla görürsünüz. Bu hedefe ulaşmak için kolay bir yol var.

mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc

İlk komut pom dosyanızdaki bağımlılıkların her biri için kaynak kodunu indirmeyi dener.

İkinci komut Javadoc'ları indirmeyi dener.

Maven buradaki kütüphane paketleyicilerinin insafına. Bu yüzden bazılarının kaynak kodu paketlenmeyecek ve birçoğunun Javadoc'ları olmayacak.

Çok fazla bağımlılığınız varsa, belirli yapay nesneler elde etmek için inklüzyonlar / hariç tutmalar kullanmak iyi bir fikir olabilir, aşağıdaki komut örneğin belirli bir artifactId'ye bağımlılık için kaynakları indirecektir:

mvn dependency:sources -DincludeArtifactIds=guava

Kaynak: http://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/

Belgeler: https://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html


10
İndirildikten sonra onları nereye koyar?
James Moore

15
Onları M2_HOME altındaki ikili JAR'larla aynı dizine yerleştirir.
Alain O'Dea

19
Tutulma kullanıyorsanız, daha sonra "mvn eclipse: eclipse" işlemini yapmak ve sonra projenizi tutulma içinde yenilemek yararlı olabilir - sizi her dosyaya manuel olarak kaynak eklemekten kurtarır.
unigeek

1
İndirildikten sonra kaynakları ve javadocları bulamıyorum. Her dizini M2_HOME
Patrick Kiernan

2
mvn dependency:resolve -Dclassifier=javadocIntelliJ IDEA javadocları otomatik olarak fark ettikten sonra , bu çok güzel.
Jonik

89

Maven-eclipse eklentisini yapılandırma ve çalıştırma (örneğin komut satırından mvn eclipse:eclipse)

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

Ne demek istiyorsun? Bunu mvn eclipse:eclipse, POM dosyasına eklerseniz çalıştırdığınızda kaynakların ve belgelerin indirildiğini mi kastediyorsunuz ?
Lii

3
Evet. Bu kadar basit.
RobAu

@RobAu, kaynak nereden indirilecek, projeye kendi başına mı yoksa başka bir yere mi eklenecek?
Jaskey

1
M2_REPONormal kavanoza aynı yerde xxxx-yy-sources.jar olarak jar olarak indirilir . Kütüphanelerde xxxx-yy jar için kaynak kodu olarak eklenir
RobAu

1
ŞekerKlip tutturmak için M2_REPO eklemeniz ve ardından projeyi yenilemeniz gerekir.
RobAu

36

Bir proje, proje kaynaklarının bir kavanozunu oluşturur ve bir maven deposuna dağıtırsa, o zaman bulacaksınız :)

Sadece FYI, kaynak eserler genellikle maven-source-plugin tarafından oluşturulur . Bu eklenti, bir projenin ana veya test kaynaklarını bir kavanoz arşivinde paketleyebilir ve Kaynak Eklentisini Yapılandırma bölümünde açıklandığı gibi :

(...) Oluşturulan jar dosyası finalName, ana kaynaklarsa artı "-sources" değerine göre adlandırılır . Aksi takdirde, finalNametest kaynakları ise artı "-test-sources" olur.

Bir yapıyı tanımlamak için ek metin verildi ("-sources" veya "-test-sources") sınıflandırıcı olarak adlandırılır.

Sınıflandırıcı kullanan bir yapıya bağımlılık bildirmek için <classifier>öğeyi eklemeniz yeterlidir . Örneğin:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate</artifactId>
  <version>3.2.7.ga</version>
  <classifier>sources</classifier>
</dependency>

Genelde bunu yapmadığınızı unutmayın, çoğu IDE ana kaynaklardan (ve / veya JavaDoc) kaynaklara açıkça bağımlılık bildirmeden indirme desteği sağlar.

Son olarak, bazı depo arama motorlarının sınıflandırıcıyı kullanarak yapay nesnelerin aranmasına izin verdiğini de unutmayın (en azından Nexus gelişmiş arama ile yapar). Örneğin bu aramaya bakın .


18

Maven Fikir eklentisi IntelliJ Idea için size kaynakları ve java doc çözülmesi ve indirilebilir gerekip gerekmediğini belirlemenizi sağlar

mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true

Tüm bağımlılıklar için kaynak indirmek yerine, sadece bağımlılık ile birlikte pom'da belirterek 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

Bu eklenti emekli oldu
kiltek

18

Bazı indirmek için belirli bir kaynak veya javadoc biz GroupIds eklemeniz gerekir - aşağıda gösterildiği gibi Onun bir virgülle ayrılmış değer

mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources

Sınıflandırıcının virgülle ayrılmadığına dikkat edin, javadoc'u indirmek için yukarıdaki komutu bir kez daha javadoc olarak sınıflandırıcı ile çalıştırmamız gerekir.

mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc

Tüm bağımlılıklar için kaynak indirmek yerine, sadece bağımlılık ile birlikte pom'da belirterek 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

14

Herhangi bir eseri kullanmak için

mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier

Groovy kaynakları için bu

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources

Groovy'nin javadocu için

mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc

Bu, verilen eseri yerel Maven veri havuzunuza, yani genellikle koyar $HOME/.m2/repository.

dependency:sources eklenti kaynaklarını veya eklentilerin içinde tanımlanan bağımlılık kaynaklarını değil, sadece proje bağımlılıklarının kaynaklarını indirir.


12

Bu ilgili soruda bilgi bulabilirsiniz: Eclipse
maven eklentisini kullanır ve ardından 'mvn eclipse: eclipse -DdownloadSources = true'


Benim için işe yarayan tek çözüm bu. Eclipse Kepler kullanıyorum. Bu .classpath içinde uygun referanslar yaptığı için . Aşağıdaki gibi:
aspdeepak

<classpathentry kind = "var" path = "M2_REPO / redis / clients / jedis / 2.6.0 / jedis-2.6.0.jar" sourcepath = "M2_REPO / redis / istemciler / jedis / 2.6.0 / jedis-2.6.0 -sources.jar ">
aspdeepak

@ RobAu cevabını takip ettiğimde sadece Hibernate Docs , Reppo'dan indirilir, Spring'den indirilmez . Sonra u sağladı & @ mrembisz takip & Maven tercih değişiklikleri yapmak ve bir çekicilik gibi çalışır bağlantısını ziyaret edin . Bahar Dokümanları alıyorum . @Stefan De Boey Bunu paylaştığınız için teşekkür ederiz. +1.
OO7

9

eclipse kullanıyorsanız Tercihler> Maven'i açıp Yapay Nesneleri İndir'i de seçebilirsiniz.


7

Tutulmada

  1. Üzerine sağ tıklayın pom.xml
  2. Seç Run As-> Maven generate-sources
    o .m2 klasörde varsayılan olarak kaynağı oluşturacağından

Ön Koşul:

Maven Eclipse ile yapılandırılmalıdır.


1
Farklı bir soruyu cevaplar. Bu soru, onları oluşturmayan kaynak JAR'ları indirmektir.
Stephen C

5

Tutulmada - projeye tıklayın ve sonra:

resim açıklamasını buraya girin.


Eclipse maven ayarında 'eser kaynaklarını indir' seçeneğinin işaretini kaldırdım, bu yüzden sadece kavanozu indir. Ama ikincisi, kaynağı indirmek için bu çözümü kullanmaya çalıştım, herhangi bir mesaj olmadan başarısız oldu. Maaven yerel depodaki jar klasörünü kaldırdım ve kavanozu tekrar indirdim, sonra kaynak kavanoz başarılı oldu. Bunun sebebi maven yerel havuzunun kavanoza sahip olması, bu yüzden kaynağı indirmek için bu yöntemi kullanamam.
frank

4

Yüklendiyse yapabilirsiniz. Genellikle bunlara "frameworkname-version-source (s)" denir.


4

NetBeans, Bağlam Tıklama

In NetBeans 8 Maven güdümlü proje ile, sadece sen ilgilendiğiniz bağımlılık kavanoz dosya listesi öğesi içerik tıklayın. SeçDownload Sources . Bir dakika bekleyin, NetBeans varsa kaynak kodunu otomatik olarak indirip kuracaktır.

Benzer şekilde Download Javadoc, dokümanı yerel olarak yüklemeyi de seçebilirsiniz . Ardından editördeki bazı kodu bağlam tıklatıp JavaDoc'u görmeyi seçebilirsiniz.

Maven tarafından yönetilen bir NetBeans 8 projesinde "İndirilen Kaynaklar" bağlam menü öğesinin ekran görüntüsü


3

Eclipse'deki (Kepler) Maven konsolunu izlemeye bağlı olarak, zaten indirilmiş olan kaynaklara sahip olmadığınız editörde Maven bağımlılığından bir sınıf açmaya çalışırsanız, kaynaklar Maven bağımlılığına otomatik olarak indirilir. Tüm bağımlılıklarınız için kaynak kapmak istemediğinizde, ancak hangilerini önceden istediğinizi bilmediğinizde (ve Eclipse kullandığınızda) bu kullanışlıdır.

Ben kullanarak sona erdi GabrielRamierez yaklaşımının @ fakat istihdam sağlayacak PascalThivent yaklaşımı @ ileriye.


2

GroupId ve aritifactId öğelerini biliyorsanız, böyle indirme URL'si oluşturabilirsiniz.

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

http://central.maven.org/maven2/ch/qos/logback/logback-classic/

ve bunun gibi bir sayfa alacaksınız, ihtiyacınız olan sürümü seçin, sadece tadını çıkarın! resim açıklamasını buraya girin

resim açıklamasını buraya girin


1

Ayrıca, eclipse çalışma alanına projeyi almak için eclipse eklentisini kullandım. Farklı bir proje üzerinde çalıştığımdan beri tutulmasıyla ama maven-eclipse eklentisi olmadan çalışmanın mümkün olduğunu gördüm. Bu, farklı ortamlarla kullanımı kolaylaştırır ve maven tutulması üzerinden kolay kullanım sağlar. Ve pom.xml dosyasını değiştirmeden.

Bu yüzden Gabriel Ramirez'in yaklaşımını öneriyorum.


0

Hata ayıklama için aşağıdaki gibi bir "Java Decompiler" kullanabilirsiniz: JAD ve kaynakta anında kaynak (üretilen kaynak asla orijinal ile aynı olmasa da). Sonra Eclipse veya favori IDE eklentisi olarak JAD yükleyin.


0

Maven depoları, kaynaklar kavanozunu indirmek için basit bir yol sağlar.

Ben "bahar-boot-aktüatör-otomatik yapılandırma" için bir gösteri kullanarak açıklayacağım.

  1. Maaven deposuna gidin - https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure
  2. Sayfa çeşitli sürümleri listeler. - Tıkla üzerinde istenilen birine, hadi 2.1.6.RELEASE demek https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE
  3. Sayfada "Dosyalar" ın yanında "Tümünü Görüntüle" bağlantısı var. Tıklayın - https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/
  4. Sayfa, kaynaklar için olanlar da dahil olmak üzere çeşitli dosyaları listeler - https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/spring-boot-actuator-autoconfigure -2.1.6.RELEASE-sources.jar

Aksi takdirde, repoyu github'dan her zaman "git klonlayabilirsiniz", eğer varsa ve belirli kodu alabilirsiniz.

Başkaları tarafından açıklandığı gibi, "mvn bağımlılığı: sources" komutunu, kullandığınız bağımlılık için get and create sources jar komutunu kullanabilirsiniz.

Not: Bazı bağımlılıklar kaynak kodu değil, pom dosyası içerdiğinden sources.jar dosyasına sahip değildir. örneğin yay körüğü marş motoru . Bu durumda olduğu gibi:

Başlangıç ​​POM'ları, uygulamanıza ekleyebileceğiniz bir dizi uygun bağımlılık tanımlayıcısıdır. Örnek Baharı avlamak ve bağımlılık tanımlayıcı yüklerini kopyalamak zorunda kalmadan, ihtiyacınız olan tüm Bahar ve ilgili teknoloji için tek elden bir dükkan alırsınız.

Referans: Spring Boot Starters'a Giriş


0

IntelliJ IDEA'da Kaynakları otomatik olarak indir seçeneğini açarak içe aktarırken yapay kaynakları otomatik olarak indirebilirsiniz:

SettingsBuild, Execution, DeploymentBuild ToolsMavenImporting

resim açıklamasını buraya girin


0

Herhangi bir eser için kaynak jar dosyasını manuel olarak bulmak istiyorsanız, belirli bir eser için maven depo konumuna gidin ve Dosyalar'da 'Tümünü görüntüle'yi tıklayın. Kaynak jar dosyasını bulabilirsiniz.

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.