有谁知道您是否可以在Maven存储库中找到源JAR?
有谁知道您是否可以在Maven存储库中找到源JAR?
Answers:
Maven Micro-Tip:获取源代码和Javadocs
在IDE中使用Maven时,通常会发现IDE需要解析库依赖项的源代码和Javadocs。有一个简单的方法可以实现该目标。
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
第一个命令将尝试下载pom文件中每个依赖项的源代码。
第二个命令将尝试下载Javadocs。
Maven受这里的图书馆打包人员的摆布。因此,其中一些将没有打包源代码,并且许多将没有Javadocs。
如果您有很多依赖关系,那么最好使用包含/排除来获取特定的工件,例如,以下命令将仅下载具有特定artifactId的依赖关系的源:
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
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA自动注意到javadocs之后,这非常好。
配置和运行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>
mvn eclipse:eclipse
如果您将源代码和文档添加到POM文件中,那么您是在运行时下载源文件和文档吗?
M2_REPO
以xxxx-yy-sources.jar的jar格式下载到jar中,与普通jar相同。它将作为库中xxxx-yy jar的源代码附加
如果一个项目创建了一个由项目源组成的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使用高级搜索进行搜索)。例如,请参见此搜索。
要下载某些特定的源代码或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
仅下载项目依赖项的源,而不是插件源,也不下载插件内部定义的依赖项源。
您可以在以下相关问题中找到信息:
如果使用eclipse maven插件,则获取附加到Eclipse的Maven管理的依赖项的源jar文件,
然后使用'mvn eclipse:eclipse -DdownloadSources = true'
如果您使用的是eclipse,则还可以打开“首选项”>“ Maven”并选择“下载Artifact源”,这将使pom.xml完整无缺,并将源或Java文档(如果选中)仅用于在您的机器位置〜/ .m2进行开发。
在具有Maven驱动的项目的NetBeans 8中,只需在上下文上单击您感兴趣的依赖项的jar文件列表项即可。选择Download Sources
。请稍等,NetBeans将自动下载并安装源代码(如果有)。
同样,您可以选择Download Javadoc
在本地安装该文档。然后,您可以在编辑器中右键单击一些代码,然后选择查看JavaDoc。
基于在Eclipse(Kepler)中观看Maven控制台的基础,如果您尝试在编辑器中尝试从所述Maven依赖项打开一个类,而您尚未下载该源,那么将自动下载Maven依赖项的源。当您不想获取所有依赖项的源代码,但是又不知道想要哪些依赖项(并且正在使用Eclipse)时,这非常方便。
我最终使用了@GabrielRamierez的方法,但以后将使用@PascalThivent的方法。
如果您知道groupId和aritifactId,则可以像这样生成下载网址。
<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/
Maven仓库确实提供了下载源jar的简单方法。
我将使用“ spring-boot-actuator-autoconfigure”的演示对其进行解释。
否则,您可以始终从github上“ git clone”该仓库,如果有的话,并获取特定的代码。
正如其他人所解释的那样,您可以使用“ mvndependency:sources”命令为所使用的依赖项获取并生成源jar。
注意:某些依赖项将没有sources.jar,因为它们不包含源代码而是一个pom文件。例如spring-boot-starter-actuator。在这种情况下:
入门POM是可以在应用程序中包括的一组便捷的依赖项描述符。您可以一站式购买所需的所有Spring和相关技术,而不必遍历示例代码并复制依赖项描述符的粘贴负载。
如果要手动找到任何工件的源jar文件,请转到特定工件的maven存储库位置,然后在“文件”中单击“查看全部”。您可以找到源jar文件。