从Maven仓库获取源码JAR

有没有人有任何想法,如果你可以在Maven仓库find源JARs?

Maven微技巧:获取源代码和Javadocs

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

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

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

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

Maven是在这里的图书馆打包者的摆布。 所以其中一些不会有源代码打包,其中许多不会有Javadocs。

如果你有很多的依赖关系,使用包含/排除来获得特定的工件也是一个好主意,下面的命令将例如只下载具有特定工件标识符的依赖关系的源代码:

 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

从命令行运行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> 

如果一个项目创build了一个jar包的项目源,并将其部署到一个maven仓库,那么你会发现它:)

只是FYI,源文件通常由maven-source-plugin创build 。 这个插件可以将项目的主要源或testing源打包成一个jar包,并且如configuration源插件中所述 :

(…)如果生成的jar文件是主要的源文件,则会用finalName的值加上“-sources”来命名。 否则,如果它是testing源,它将是finalName加“ finalName -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),而不明确声明它们的依赖关系。

最后,还要注意的是,一些存储库search引擎允许使用分类器search工件(至lessNexus用于高级search)。 以此search为例。

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

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

请注意,分类器不是逗号分隔,要下载javadoc我们需要再次运行上述命令与分类器作为javadoc

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

IntelliJ Idea的Maven插件允许您指定是否parsing和下载源文件和Java文档

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

你可以在这个相关的问题中find信息: 获取附加到Eclipse Maven托pipe的依赖关系的源jar文件
如果你使用eclipse maven插件,那么使用'mvn eclipse:eclipse -DdownloadSources = true'

如果你使用的是eclipse,你也可以打开Preferences> Maven,然后selectDownload Artifact Sources,这会让pom.xml保持原样,并保留你的源代码或者java文档(如果select的话)只是为了开发你的机器位置〜/ .m2

要下载任何工件使用

 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。

依赖关系:源只是下载项目依赖关系的源代码,而不是插件源代码,也不是插件中定义的依赖关系源。

在Eclipse中

  1. 右键单击pom.xml
  2. selectRun As – > Maven generate-sources
    它将在.m2文件夹中默认生成源代码

先决条件:

Maven应该使用Eclipse进行configuration。

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

在日食 – 点击该项目,然后:

在这里输入图像描述

基于观察Eclipse(Kepler)中的Maven控制台,如果您尝试从编辑器中的Maven依赖项中打开一个类,那么源代码将自动下载到Maven依赖项中,而您没有下载源代码。 当你不想抓取所有的依赖关系的源代码时,这是很方便的,但是你不知道你想要提前哪个(你使用的是Eclipse)。

我最终使用@ GabrielRamierez的方法 ,但将采用@PascalThivent的方法 。

NetBeans,上下文单击

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

同样,您可以selectDownload Javadoc以获取本地安装的文档。 然后,您可以在编辑器中上下文单击一些代码,然后select查看JavaDoc。

在由Maven驱动的NetBeans 8项目中选择了上下文菜单项“下载源”的屏幕截图

我也使用eclipse插件将项目放到eclipse工作区中。 由于我在一个不同的项目上工作,我看到可以使用eclipse,但没有maven-eclipse-plugin。 这使得它更容易在不同的环境中使用,并且可以轻松使用maven over eclipse。 而且不需要改变pom.xml文件。

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