获取附加到Eclipse以获得Mavenpipe理的依赖关系的源jar文件

我正在使用Maven(和Maven Eclipse Integration)来pipe理Eclipse中Java项目的依赖关系。 来自Maven仓库的JAR文件的自动下载function是一个实时的节省。 不幸的是,它不包含API文档和源代码。

我如何设置Maven自动获取源代码和javadoc附件,并在Eclipse中正确注册它们?

我确信用于Eclipse的m2eclipse Maven插件可以做到这一点。 你可以configuration它自动为你下载源文件和javadoc。

这是通过进入窗口>首选项> Maven并检查“下载工件来源”和“下载工件JavaDoc”选项来实现的。

Screenshot of Maven Preferences

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.javaFoo.class )。 Eclipse自动将源代码与编译的代码关联起来,并自动从源代码提供JavaDoc。 显然,这只有在你控制神器时才有用。

在项目级别或用户属性级别设置属性后,请做一个Maven的 – >更新项目(强制更新)。 它下载源