如何教 Eclipse 在源路径中包含 Maven 源包?

Posted

技术标签:

【中文标题】如何教 Eclipse 在源路径中包含 Maven 源包?【英文标题】:How to teach Eclipse to include Maven source packages on the source path? 【发布时间】:2010-11-30 20:30:40 【问题描述】:

在调试时查找库源文件时,如何使用 m2eclipse 教 Eclipse 将我本地 Maven 存储库中的所有源 .jar 包含在源路径中?

【问题讨论】:

您找到适合您的答案了吗? @Cuga:不,我没有。对你来说似乎是一样的。 我也遇到了同样的问题——请看我的回答,希望它能为你解决这个问题。 这个解决方案对我有用:***.com/questions/5780758/… 【参考方案1】:

您应该启用下载工件源首选项。

删除了无效的 ImageShack 链接

对于现有的工件,您可以使用 下载源代码 操作:

删除了无效的 ImageShack 链接

【讨论】:

@Robert,OP 似乎暗示源 jar 已经在本地存储库中。如果是这种情况,设置下载源将导致源的第二个副本被下载到嵌入器的本地存储库,而不是 Maven 安装指定的那个。 源码包被下载,只是调试时不在源码查找路径上。 您添加的图像似乎已被删除。【参考方案2】:

我遇到了同样的问题——我使用 Maven 源插件将源代码部署到我们的存储库中,当我将该项目包含在一个单独的项目中时,尽我所能尝试,它不会包含源代码Eclipse 构建路径。我之前为之前的工作做过这个,我知道可以将源包含在构建路径中,以便 Eclipse 只需单击其他答案中所述的“下载源”即可自动链接集成调试器中的源。

这就是我所拥有的(这对我不起作用)。我从 maven-source-plugin 的网页上得到了这个 sn-p 代码:

        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-sources</id>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>

这会将源代码打包到单独的 JAR 中并将其上传到我们的存储库,但它不会自动附加到 Eclipse 调试器。最终,我发现我需要一个&lt;configuration&gt;&lt;attach&gt;true&lt;/attach&gt;&lt;/configuration&gt; sn-p,如下所示:

        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-sources</id>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <attach>true</attach>
        </configuration>

在此之后,通过右键单击 Package Explorer 中的项目并执行“Maven > 下载源”,源会自动附加到 Eclipse 调试器。

我希望这能解决你的问题。

【讨论】:

我将插件配置复制到我的 pom.xml 中。我还清理了存储库,然后 mvn install。但是,我仍然无法让调试器在自动调试期间附加我的 Maven 依赖库,例如 spring-core。你能提供更多细节吗? 您是否尝试在 Package Explorer 中右键单击项目并执行“Maven > 下载源”? 我必须按照@felipe-fernandez 的建议手动选择源 jar【参考方案3】:

转到 Window->Preferences->Maven->Installations 并确保将 Maven 配置为使用您的 Maven 安装而不是嵌入器。

如果未配置为这样做,请选择 Add... 并浏览到 Eclipse 安装的根目录,然后确定选择。

M2eclipse 然后将读取您的设置文件,发现您的本地存储库,并自动附加本地存储库中可用的源。

如果 m2eclipse 指向您的本地存储库,您应该能够右键单击并选择 Maven->Download Sources,或者启用首选项以自动下载它们。如果源已经存在,则应简单地附加它们。有关详细信息和漂亮的屏幕截图,请参阅this answer。

如果在执行这些步骤后仍然没有附加源,则表明您的 Maven 安装有问题。您可以尝试将 m2eclipse 插件更新到最新版本,看看是否可以解决问题。

【讨论】:

我已经使用了外部 Maven 安装。但是无法识别源包并添加到源路径。在 Eclipse 中,我究竟在哪里可以找到项目的源查找路径配置?【参考方案4】:

首先下载jar 源。在包资源管理器,Maven 依赖项中,找到您想要的 jar,右键单击它,Maven,下载源。

下载的源 jar 位于您的主目录、.m2 文件夹、存储库中,然后浏览包名称,直到获得 xxx-sources.jar。

然后调试您的 maven 项目。在调试视图中,调试视图,右键单击您的项目,编辑源查找,添加...,外部存档并选择下载的源 jar。

【讨论】:

【参考方案5】:

我也遇到了 Anatoli 描述的m2eclipse bug。它仍然没有解决,在我看来这也是提问者问题的原因。

【讨论】:

我觉得你错了,bug只指插件调试。【参考方案6】:

请记住,根据您的 m2eclipse 版本,您可能会受到this problem 的影响。该问题在调试插件时会中断源代码查找。

【讨论】:

以上是关于如何教 Eclipse 在源路径中包含 Maven 源包?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 maven jar 构建过程中包含外部 jar?

收到一个主 jar 文件,其中包含需要在类路径中的其他 jar 文件。在我的 Maven 项目中包含这个主 jar 的最佳方法是啥?

如何在导出的 Eclipse 产品中包含作为配置运行

Maven类路径错误多个SLF4J绑定

如何在清单文件中包含 Maven 依赖项

如何在 Maven 项目中包含本地 jar 文件 [重复]