获取附加到Eclipse以获得Mavenpipe理的依赖关系的源jar文件
我正在使用Maven(和Maven Eclipse Integration)来pipe理Eclipse中Java项目的依赖关系。 来自Maven仓库的JAR文件的自动下载function是一个实时的节省。 不幸的是,它不包含API文档和源代码。
我如何设置Maven自动获取源代码和javadoc附件,并在Eclipse中正确注册它们?
我确信用于Eclipse的m2eclipse Maven插件可以做到这一点。 你可以configuration它自动为你下载源文件和javadoc。
这是通过进入窗口>首选项> Maven并检查“下载工件来源”和“下载工件JavaDoc”选项来实现的。
mvn eclipse:eclipse -DdownloadSources=true
要么
mvn eclipse:eclipse -DdownloadJavadocs=true
或者你可以添加两个标志,正如Spencer K指出的那样。
另外, =true
部分不是必需的,所以你可以使用
mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs
这个工作的其他答案,但如果你想避免必须记住命令行参数,你也可以添加到downloadSources和downloadJavadocsconfiguration到你的pom.xml的maven-eclipse-plugin部分:
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <configuration> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> ... other stuff ... </configuration> </plugin> </plugins> </build> ... </project>
我更喜欢不把源/ Javadoc的下载设置到项目pom.xml
文件,因为我觉得这些是用户的喜好,而不是项目属性。 相反,我将它们放在我的settings.xml
文件中的configuration文件中:
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <profiles> <profile> <id>sources-and-javadocs</id> <properties> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> </properties> </profile> </profiles> <activeProfiles> <activeProfile>sources-and-javadocs</activeProfile> </activeProfiles> </settings>
如果源jar子在本地存储库中,并且正在使用日食支持,则源代码将自动附加。 您可以运行mvn dependency:sources
来下载给定项目的所有源代码jar文件。 不知道如何做同样的文件,但。
右键单击项目 – > maven – >下载源文件
还有一个类似的问题可以解答这个问题 ,并且包含了一些pom设置。
我试过windows-> pref ..-> Maven但是它没有工作。 因此,我用命令mvn eclipse创build了一个新的类path:eclipse -DdownloadSources = true并刷新了一次工作空间。 瞧..来源被附上。
源jar的条目在类path中可用。 因此新的构build解决了这个问题…
如果你用的是meclipse的话
窗口 – > maven – >下载工件来源(select检查)
(如果你仍然有附加的源窗口,然后点击附加文件button,并closures附加源窗口。下次你看到源将打开正确的来源)
Surajz
将maven-eclipse-plugin改为包含source / javadoc只需申请添加到pom的新的依赖关系即可。 如果我们需要申请现有的依赖关系,我们必须运行mvn dependency:sources。 我检查了这一点。
在我使用m2Eclipse的Eclipse helios版本中没有
window --> maven --> Download Artifact Sources (select check)
窗下只有“新窗口”,“新编辑”,“开放视野”等
如果你右键点击你的项目,然后selectmaven – >下载来源
什么都没发生。 没有来源下载,没有更新的POM文件,没有窗口popup询问哪些来源。
在eclipse之外做mvn xxx是危险的 – 有些命令不能和m2ecilpse一起工作 – 我做了一次,失去了整个项目,不得不重新安装eclipse并从头开始。
我仍然在寻找一种方法来让ecilpse和maven来查找和使用像servlet-api这样的外部jar文件的来源。
我已经将pomconfiguration添加到maven-eclipse插件来下载源代码和javadoc,但是我想/希望这会发生在新的依赖关系上,而不是现有的依赖关系。
对于现有的依赖关系,我在Package Explorer中浏览到“Maven Dependencies”,右键单击commons-lang-2.5.jar,选中Maven | 下载源和…没有什么似乎发生(没有进度条或表明它正在做任何事情)。 但是,它确实下载了,因为我现在可以跳转到commons-lang目录。
build议使用pom中的setup:
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <configuration> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> ... other stuff ... </configuration> </plugin> </plgins> </build> ...
首先,我认为这仍然不会附加javadoc和来源(因为我试图与之前的-DdownloadSources选项失败)。
但令人惊讶的是.classpath文件是使用POM变体时获得其源和javadoc!
靛蓝(也可能是Helios)上面提到的checkbox位于这里:
窗口 – >首选项 – > Maven
在Eclipse-Maven首选项中检查下载源代码/ javadoc有时是不够的。 如果maven由于某种原因未能下载它们(networking中断?),maven会创build一些* .lastUpdated文件,然后永远不会再下载。 我的经验性解决scheme是从.m2 / repository中删除工件目录,然后在启动时检查下载source / javadoc并重新启动eclipse工作空间并更新项目。 在工作空间重新启动后,也许有些项目可能被标记为错误,而eclipse进度正在下载,那么任何错误将被清除。 也许这个程序不是那么“科学”,但对我来说确实成功了。
我有一个类似的问题,最适合我的解决scheme是将源代码包含在与编译代码相同的jar文件中(因此jar中的给定目录将包含Foo.java
和Foo.class
)。 Eclipse自动将源代码与编译的代码关联起来,并自动从源代码提供JavaDoc。 显然,这只有在你控制神器时才有用。
在项目级别或用户属性级别设置属性后,请做一个Maven的 – >更新项目(强制更新)。 它下载源