簡體   English   中英

從 Maven 存儲庫獲取源 JAR

[英]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

在日食中

  1. 右鍵單擊pom.xml
  2. 選擇Run As -> Maven generate-sources
    默認情況下,它將在 .m2 文件夾中生成源

先決條件:

Maven 應該使用 Eclipse 進行配置。

在eclipse中-然后單擊項目:

在此處輸入圖像描述 .

你可以,如果他們被上傳。 通常它們被稱為“frameworkname-version-source(s)”

NetBeans,上下文單擊

在具有 Maven 驅動項目的NetBeans 8中,只需上下文單擊您感興趣的依賴項的 jar 文件列表項。 選擇Download Sources 稍等片刻,NetBeans 將自動下載並安裝源代碼(如果有)。

同樣,您可以選擇Download Javadoc以在本地安裝該文檔。 然后您可以上下文單擊編輯器中的一些代碼並選擇查看 JavaDoc。

在 Maven 驅動的 NetBeans 8 項目中選擇的上下文菜單項“下載源”的屏幕截圖

根據在 Eclipse (Kepler) 中觀察 Maven 控制台,如果您嘗試在編輯器中打開來自所述 Maven 依賴項的類,而您尚未下載其源代碼,則會自動下載 Maven 依賴項的源代碼。 當您不想獲取所有依賴項的源代碼但不知道提前需要哪些依賴項(並且您正在使用 Eclipse)時,這很方便。

我最終使用了@GabrielRamierez 的方法,但今后將采用@PascalThivent 的方法

如果你知道groupIdaritifactId ,你可以像這樣生成下載 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”的演示來解釋它。

  1. 轉到 Maven 存儲庫 - https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure
  2. 該頁面列出了各種版本。 點擊想要的,比如說 2.1.6.RELEASE - https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE
  3. 該頁面在“文件”旁邊有“查看全部”鏈接。 點擊它 - https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/
  4. 該頁面列出了各種文件,包括源文件 - 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

否則,您總是可以從 github 上“git clone”repo(如果它在那里)並獲取特定代碼。

正如其他人所解釋的,您可以使用“mvn dependency:sources”命令獲取並生成您正在使用的依賴項的源 jar。

注意:某些依賴項沒有sources.jar,因為它們不包含源代碼,而是一個pom 文件。 例如spring-boot-starter-actuator 在這種情況下:

Starter POM 是一組方便的依賴描述符,您可以將其包含在應用程序中。 您可以獲得所需的所有 Spring 和相關技術的一站式商店,而無需搜索示例代碼並復制粘貼加載的依賴描述符。

參考: Spring Boot Starters 簡介

在 IntelliJ IDEA 中,您可以通過打開 Automatically download Sources 選項在導入時自動下載工件源:

SettingsBuild, Execution, DeploymentBuild ToolsMavenImporting

在此處輸入圖像描述

如果您想手動查找任何工件的源 jar 文件,請轉到特定工件的 maven 存儲庫位置,然后在文件中單擊“查看全部”。 您可以找到源 jar 文件。

對於調試,您還可以使用“Java 反編譯器”,例如:JAD 和動態反編譯源(盡管生成的源永遠不會與原始源相同)。 然后將 JAD 作為插件安裝在 Eclipse 或您最喜歡的 IDE 中。

如果您使用的是 Eclipse,我建議您同時下載第三方庫的源代碼Javadocs。

右鍵單擊項目並按照下面的屏幕截圖下載兩者。

下載 Javadocs 意味着您通常可以從第三方庫中獲得有關方法的上下文幫助,以及對參數的有用描述等。如果您不太了解該庫,這將是必不可少的。 在某些情況下,我發現當源不可用時 Javadocs 可用。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM