从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中
- 右键单击
pom.xml
- select
Run 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。
我也使用eclipse插件将项目放到eclipse工作区中。 由于我在一个不同的项目上工作,我看到可以使用eclipse,但没有maven-eclipse-plugin。 这使得它更容易在不同的环境中使用,并且可以轻松使用maven over eclipse。 而且不需要改变pom.xml文件。
所以,我推荐加布里埃尔·拉米雷斯的方法。