有人知道是否可以在Maven存储库中找到源jar吗?
当前回答
下载任何工件使用
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/存储库。
Dependency:sources只下载项目依赖项的源代码,不下载插件源代码,也不下载插件内部定义的依赖项的源代码。
其他回答
在IntelliJ IDEA中,您可以在导入时通过打开“自动下载源”选项自动下载工件源:
设置→构建、执行、部署→构建工具→Maven→导入
我还使用eclipse插件将项目放到eclipse工作区中。 因为我在一个不同的项目中工作过,我发现可以使用eclipse而不使用maven-eclipse-plugin。这使得它更容易在不同的环境中使用,并使maven比eclipse更容易使用。并且不需要更改pom.xml文件。
所以,我推荐加布里埃尔·拉米雷斯的方法。
在Eclipse中
右键单击pom.xml 选择Run As -> Maven generate-sources 默认情况下,它将在.m2文件夹中生成源代码
Pre-Requisite:
Maven应该使用Eclipse进行配置。
如果您正在使用Eclipse,我建议同时下载源代码和第三方库的Javadocs。
右键点击项目和下载两个截图如下。
下载Javadocs意味着通常可以从第三方库中获得方法的上下文帮助,其中包含有用的参数描述等。如果你不太了解图书馆,这是很重要的。在某些情况下,我发现当源代码不可用时,Javadocs是可用的。
如果一个项目创建了一个项目源代码的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支持高级搜索)。请看这个搜索的例子。
推荐文章
- 如何分割逗号分隔的字符串?
- Java字符串—查看字符串是否只包含数字而不包含字母
- Mockito.any()传递带有泛型的接口
- 在IntelliJ 10.5中运行测试时,出现“NoSuchMethodError: org.hamcrest. matcher . descripbemismatch”
- 使用String.split()和多个分隔符
- Java数组有最大大小吗?
- 在Android中将字符串转换为Uri
- 从JSON生成Java类?
- 为什么java.util.Set没有get(int index)?
- Swing和AWT的区别是什么?
- 为什么Java流是一次性的?
- 四舍五入BigDecimal *总是*有两位小数点后
- 设计模式:工厂vs工厂方法vs抽象工厂
- Java:检查enum是否包含给定的字符串?
- 它的意思是:序列化类没有声明一个静态的最终serialVersionUID字段?