[英]Get source JARs from Maven repository
有誰知道您是否可以在 Maven 存儲庫中找到源 JAR?
Maven 微提示:獲取源代碼和 Javadocs
當您在 IDE 中使用 Maven 時,您經常會發現 IDE 需要為您的庫依賴項解析源代碼和 Javadocs。 有一種簡單的方法可以實現這一目標。
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
第一個命令將嘗試下載 pom 文件中每個依賴項的源代碼。
第二個命令將嘗試下載 Javadocs。
Maven 在這里受庫打包程序的擺布。 所以他們中的一些人沒有打包源代碼,而且他們中的許多人沒有Javadocs。
如果您有很多依賴項,使用包含/排除項來獲取特定工件也是一個好主意,例如,以下命令將僅下載具有特定工件ID 的依賴項的源:
mvn dependency:sources -DincludeArtifactIds=guava
資料來源: http ://tedwise.com/2010/01/27/maven-micro-tip-get-sources-and-javadocs/
文檔: https ://maven.apache.org/plugins/maven-dependency-plugin/sources-mojo.html
配置和運行 maven-eclipse 插件,(例如從命令行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>
如果一個項目創建一個項目源的 jar 並將其部署到 maven 存儲庫,那么您會找到它:)
僅供參考,源工件通常由maven-source-plugin創建。 此插件可以將項目的主要或測試源捆綁到 jar 存檔中,如配置源插件中所述:
(...) 生成的 jar 文件將由
finalName
的值加上“-sources”來命名,如果它是主要來源。 否則,如果它是測試源,它將是finalName
加上“-test-sources”。
附加文本用於描述工件(此處為“-sources”或“-test-sources”)稱為分類器。
要聲明對使用分類器的工件的依賴關系,只需添加<classifier>
元素。 例如:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.7.ga</version>
<classifier>sources</classifier>
</dependency>
請注意,您通常不會這樣做,大多數 IDE 都支持從主要工件下載源代碼(和/或 JavaDoc),而無需明確聲明對它們的依賴。
最后,還要注意一些存儲庫搜索引擎允許使用分類器搜索工件(至少 Nexus 使用高級搜索)。 例如,請參閱此搜索。
IntelliJ Idea 的maven idea 插件允許您指定是否應解析和下載源和 java doc
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
要下載一些特定的源代碼或 javadoc ,我們需要包含 GroupIds - 它是一個逗號分隔值,如下所示
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
請注意,分類器不是逗號分隔的,要下載 javadoc,我們需要將分類器作為 javadoc 再運行一次上述命令
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
要下載任何工件,請使用
mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier
對於 Groovy 來源,這將是
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources
對於 Groovy 的 javadoc,您可以使用
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
這會將給定的工件放入本地 Maven 存儲庫,即通常是$HOME/.m2/repository
。
dependency:sources
僅下載項目依賴項的源,而不是插件源或插件內部定義的依賴源。
您可以在這個相關問題中找到信息: Get source jar files attach to Eclipse for Maven-managed dependencies
如果您使用 eclipse maven 插件,請使用 'mvn eclipse:eclipse -DdownloadSources=true'
如果您使用的是 eclipse,您還可以打開 Preferences > Maven 並選擇 Download Artifact Sources,這將使 pom.xml 保持完整並保留您的源代碼或 java 文檔(如果選擇)僅用於在您的機器位置進行開發 ~/.m2
在日食中
pom.xml
Run As
-> Maven generate-sources
先決條件:
Maven 應該使用 Eclipse 進行配置。
你可以,如果他們被上傳。 通常它們被稱為“frameworkname-version-source(s)”
在具有 Maven 驅動項目的NetBeans 8中,只需上下文單擊您感興趣的依賴項的 jar 文件列表項。 選擇Download Sources
。 稍等片刻,NetBeans 將自動下載並安裝源代碼(如果有)。
同樣,您可以選擇Download Javadoc
以在本地安裝該文檔。 然后您可以上下文單擊編輯器中的一些代碼並選擇查看 JavaDoc。
根據在 Eclipse (Kepler) 中觀察 Maven 控制台,如果您嘗試在編輯器中打開來自所述 Maven 依賴項的類,而您尚未下載其源代碼,則會自動下載 Maven 依賴項的源代碼。 當您不想獲取所有依賴項的源代碼但不知道提前需要哪些依賴項(並且您正在使用 Eclipse)時,這很方便。
我最終使用了@GabrielRamierez 的方法,但今后將采用@PascalThivent 的方法。
如果你知道groupId和aritifactId ,你可以像這樣生成下載 url。
<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/
我還使用 eclipse 插件將項目放入 eclipse 工作區。 由於我從事過一個不同的項目,我發現可以使用 eclipse 但沒有 maven-eclipse-plugin。 這使得它更容易在不同的環境中使用,並且可以在 eclipse 上輕松使用 maven。 這無需更改 pom.xml 文件。
所以,我推薦 Gabriel Ramirez 的方法。
Maven 存儲庫確實提供了下載源 jar 的簡單方法。
我將使用“spring-boot-actuator-autoconfigure”的演示來解釋它。
否則,您總是可以從 github 上“git clone”repo(如果它在那里)並獲取特定代碼。
正如其他人所解釋的,您可以使用“mvn dependency:sources”命令獲取並生成您正在使用的依賴項的源 jar。
注意:某些依賴項沒有sources.jar,因為它們不包含源代碼,而是一個pom 文件。 例如spring-boot-starter-actuator 。 在這種情況下:
Starter POM 是一組方便的依賴描述符,您可以將其包含在應用程序中。 您可以獲得所需的所有 Spring 和相關技術的一站式商店,而無需搜索示例代碼並復制粘貼加載的依賴描述符。
如果您想手動查找任何工件的源 jar 文件,請轉到特定工件的 maven 存儲庫位置,然后在文件中單擊“查看全部”。 您可以找到源 jar 文件。
對於調試,您還可以使用“Java 反編譯器”,例如:JAD 和動態反編譯源(盡管生成的源永遠不會與原始源相同)。 然后將 JAD 作為插件安裝在 Eclipse 或您最喜歡的 IDE 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.