获取附加到Eclipse的源jar文件以获取Maven管理的依赖项

时间:2008-11-22 01:53:33

标签: eclipse maven-2 javadoc

我正在使用Maven(以及Maven Eclipse Integration)来管理Eclipse中Java项目的依赖项。来自Maven存储库的JAR文件的自动下载功能可以节省时间。不幸的是,它不包括API文档和源代码。

如何设置Maven以自动获取源代码和javadoc附件并使用Eclipse正确注册?

18 个答案:

答案 0 :(得分:220)

我确信Eclipse的m2eclipse Maven插件 - 反之亦然 - 可以做到这一点。您可以将其配置为自动下载源文件和javadoc。

这是通过进入Window>来实现的。偏好> Maven并检查“Download Artifact Sources”和“Download Artifact JavaDoc”选项。

Screenshot of Maven Preferences

答案 1 :(得分:122)

mvn eclipse:eclipse -DdownloadSources=true

mvn eclipse:eclipse -DdownloadJavadocs=true

或者你可以添加两个标志,正如Spencer K指出的那样。

此外,=true部分不是必需的,因此您可以使用

mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

答案 2 :(得分:71)

这项工作的其他答案,但如果你想避免记住命令行参数,你也可以添加到downloadSources并将javadocs配置下载到你的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>

答案 3 :(得分:15)

我不希望将源/ Javadoc下载设置放入项目pom.xml文件中,因为我觉得这些是用户首选项,而不是项目属性。相反,我将它们放在我的settings.xml文件中的个人资料中:

<?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>

答案 4 :(得分:8)

如果源jar位于本地存储库中并且您正在使用Eclipses maven支持,则会自动附加源。您可以运行mvn dependency:sources来下载给定项目的所有源jar。不知道如何对文档做同样的事情。

答案 5 :(得分:8)

右键点击项目 - &gt; maven - &gt;下载资源

答案 6 :(得分:4)

如果你正在使用meclipse那么

窗口 - &gt; maven - &gt;下载工件来源(选择支票)

(如果您仍然获得附加源窗口,则单击附加文件按钮并关闭附加源窗口。下次您尝试查看源时它将打开正确的源)

Surajz

答案 7 :(得分:3)

还有一个similiar question可以解答此问题并包含示例pom设置。

答案 8 :(得分:3)

我试过windows-&gt; pref ..-&gt; Maven但它没有用完。因此,我使用命令mvn eclipse创建了一个新的类路径:eclipse -DdownloadSources = true并刷新工作区一次。瞧..资料来源了。

源jar的条目在类路径中可用。因此,新版本解决了这个问题...

答案 9 :(得分:2)

在我的Eclipse helios版本中,m2Eclipse没有

window --> maven --> Download Artifact Sources (select check)

在窗口下只有“新窗口”,“新编辑器”,“开放视角”等。

如果右键单击您的项目,则选择maven - &gt;下载资源

什么都没发生。没有来源下载,没有pom文件更新,没有窗口弹出询问哪些来源。

在eclipse之外做mvn xxx是危险的 - 有些命令不适用于m2ecilpse - 我曾经做过一次并丢失整个项目,不得不重新安装eclipse并从头开始。

我仍在寻找一种方法让ecilpse和maven找到并使用像servlet-api这样的外部罐子来源。

答案 10 :(得分:2)

在Eclipse-Maven偏好中检查下载源/ javadoc,有时是不够的。如果由于某种原因maven未能下载它们(网络中断?),maven会创建一些* .lastUpdated文件,然后再也不会下载。我的经验解决方案是从.m2 / repository中删除工件目录,并在检查下载源/ javadoc时重新启动eclipse工作区,并在启动时检查更新项目。 重新启动工作空间后,可能会错误地标记某些项目,同时下载eclipse进度,然后将清除任何错误。 也许这个程序并非如此&#34;科学&#34;,但对我来说确实成功了。

答案 11 :(得分:2)

将maven-eclipse-plugin的pom更改为包含source / javadoc只是申请添加到pom的新依赖项。如果我们需要申请现有的依赖项,我们必须运行mvn依赖项:sources。我查了一下。

答案 12 :(得分:1)

对于Indigo(可能还有Helios),上面提到的复选框位于:

窗口 - &gt;偏好 - &gt;行家

答案 13 :(得分:1)

建议使用pom中的设置

翻转

<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!

答案 14 :(得分:1)

我已经将pom配置添加到maven-eclipse插件中以下载源代码和javadocs,但我认为/希望新的依赖项会发生,而不是现有的依赖项。

对于现有的依赖项,我在包浏览器中浏览了“Maven Dependencies”并右键单击了commons-lang-2.5.jar,选择了Maven |下载源和...似乎没有任何事情发生(没有进度条或表明它正在做任何事情)。然而,它确实下载了,因为我现在可以跳到commons-lang来源。

答案 15 :(得分:0)

我有类似的问题,对我来说最有效的解决方案是将源包含在与编译代码相同的jar中(因此jar中的给定目录将包括Foo.java和{{1 }})。 Eclipse自动将源与已编译的代码相关联,并自动从源提供JavaDoc。显然,只有控制工件才有用。

答案 16 :(得分:0)

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

答案 17 :(得分:0)

答案的一个小补充,如果您的项目不是 maven 项目,您仍然可以通过使用 eclipse 中提供的这个插件获取 jars 的源代码 Java Source Attacher