Maven depolarında kaynak JAR'lar bulabilirseniz herhangi bir fikriniz var mı?
Maven depolarında kaynak JAR'lar bulabilirseniz herhangi bir fikriniz var mı?
Yanıtlar:
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
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA javadocları otomatik olarak fark ettikten sonra , bu çok güzel.
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>
mvn eclipse:eclipse
, POM dosyasına eklerseniz çalıştırdığınızda kaynakların ve belgelerin indirildiğini mi kastediyorsunuz ?
M2_REPO
Normal kavanoza aynı yerde xxxx-yy-sources.jar olarak jar olarak indirilir . Kütüphanelerde xxxx-yy jar için kaynak kodu olarak eklenir
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,finalName
test 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 .
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
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
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.
Bu ilgili soruda bilgi bulabilirsiniz: Eclipse
maven eklentisini kullanır ve ardından 'mvn eclipse: eclipse -DdownloadSources = true'
eclipse kullanıyorsanız Tercihler> Maven'i açıp Yapay Nesneleri İndir'i de seçebilirsiniz.
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.
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.
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!
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.
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.
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ş
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.