从Maven存储库中获取源jar

有人知道是否可以在Maven存储库中找到源jar吗?

238225 次浏览

你可以,如果他们被上传。通常它们被称为“frameworkname-version-source(s)”

获取附加到Eclipse的源jar文件,用于maven管理的依赖关系
如果你使用eclipse maven插件,那么使用'mvn eclipse:eclipse -DdownloadSources=true'

如果一个项目创建了一个项目源代码的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支持高级搜索)。例如,请参见这个搜索

Maven微提示:获取源代码和Javadocs

当您在IDE中使用Maven时,您经常会发现需要IDE来解析源代码,并需要Javadocs来解析库依赖项。实现这个目标有一个简单的方法。

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

第一个命令将尝试下载pom文件中每个依赖项的源代码。

第二个命令将尝试下载Javadocs。

Maven在这里受库打包器的支配。因此,其中一些没有打包源代码,许多没有Javadocs。

如果你有很多依赖关系,使用它可能也是一个好主意 包含/排除以获取特定工件,请执行以下命令 例如,是否只下载依赖关系的源代码 一个特定的artifactId:

mvn dependency:sources -DincludeArtifactIds=guava

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

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

IntelliJ Idea的Maven idea插件允许您指定是否应该解析和下载源代码和java文档

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

如果你正在使用eclipse,你也可以打开Preferences > Maven并选择下载Artifact Sources,这将使pom.xml保持完整,并将你的源代码或java文档(如果选中)保存在你的机器位置~/.m2中进行开发

配置和运行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>
我还使用了eclipse插件将项目导入eclipse工作区。 因为我在一个不同的项目中工作过,我发现可以使用eclipse而不使用maven-eclipse-plugin。这使得它更容易在不同的环境中使用,并使maven比eclipse更容易使用。

.xml文件

所以,我推荐加布里埃尔·拉米雷斯的方法。

根据在Eclipse (Kepler)中查看Maven控制台,如果您试图在编辑器中从上述Maven依赖项打开一个类,而您还没有下载Maven依赖项的源代码,则将自动下载Maven依赖项的源代码。当您不想为所有依赖项获取源代码,但又不知道需要哪些依赖项时(而且您正在使用Eclipse),这是非常方便的。

我最终使用@GabrielRamierez的方法,但将继续使用@PascalThivent的方法

要下载一些特定的源代码或javadoc,我们需要包括GroupIds -它是一个逗号分隔的值,如下所示

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

注意,分类器不是用逗号分隔的,要下载javadoc,我们需要使用分类器javadoc再次运行上述命令

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

在Eclipse中

  1. 右键单击pom.xml
  2. 选择“Run As -> Maven generate-sources
    ” 默认情况下,它将在.m2文件夹
  3. 中生成源代码

先决条件:

Maven应该使用Eclipse进行配置。

NetBeans, Context-Click

在maven驱动项目的NetBeans 8中,只需上下文单击您感兴趣的依赖项的jar文件列表项。选择Download Sources。稍等片刻,NetBeans将自动下载并安装源代码(如果可用的话)。

类似地,你可以选择Download Javadoc来在本地安装doc。然后,您可以在编辑器中上下文单击一些代码并选择查看JavaDoc。

 context-menu item截图

下载任何工件使用

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只是下载项目依赖项的源,而不是插件源,也不是插件内部定义的依赖项的源。

在eclipse中-点击项目然后:

enter image description here

如果你知道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/

,你会得到一个这样的页面,选择你需要的版本,只是享受它! enter image description here < / p >

enter image description here

为了调试,你也可以使用“Java反编译器”,如:JAD,并在运行中反编译源代码(尽管生成的源代码永远不会与原始源代码相同)。然后将JAD作为插件安装到Eclipse或您喜欢的IDE中。

Maven存储库确实提供了下载jar源代码的简单方法。

我将使用“spring-boot-actuator-autoconfigure”的演示来解释它。

  1. Go to maven repository - 李https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-actuator-autoconfigure < / >
  2. 该页面列出了各种版本。点击想要的版本,比如2.1.6。Release - __abc0
  3. 该页面在“文件”旁边有链接“查看所有”。点击它- 李https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-actuator-autoconfigure/2.1.6.RELEASE/ < / >
  4. 该页面列出了各种文件,包括sources - 李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 < / >

否则,你总是可以“git克隆”从github的回购,如果它在那里,并获得特定的代码。

正如其他人解释的那样,您可以使用“mvn dependency:sources”命令获取并生成您正在使用的依赖项的sources jar。

注意:有些依赖项没有sources.jar,因为这些依赖项没有源代码,只有一个pom文件。例如spring-boot-starter-actuator。 在本例中:

初学者pom是一组方便的依赖描述符,可以包含在应用程序中。您可以获得所需的所有Spring和相关技术的一站式商店,而不必寻找示例代码和复制粘贴依赖描述符负载。

参考:Spring引导启动程序介绍

在IntelliJ IDEA中,您可以在导入时通过打开“自动下载源”选项自动下载工件源:

__abc0→__abc1→__abc2→__abc3→__abc4

enter image description here

如果您想手动找到任何工件的源jar文件,请转到特定工件的maven存储库位置,并在Files中单击“view All”。你可以找到源jar文件。

如果你正在使用Eclipse,我建议同时下载第三方库的源代码而且和Javadocs。

右键点击项目和下载两个截图如下。

下载Javadocs意味着通常可以从第三方库中获得方法的上下文帮助,其中包含有用的参数描述等。如果你不太了解图书馆,这是很重要的。在某些情况下,我发现当源代码不可用时,Javadocs是可用的。

enter image description here