Eclipse没有在调试时获取Maven附加源代码

时间:2012-05-13 06:02:12

标签: eclipse maven

我已经使用Maven->下载源代码和mvn eclipse:eclipse -DdownloadSources=true在我的构建路径中下载了所有Maven JAR的源代码,这些代码有效!当我打开构建路径时,我可以看到为每个JAR文件附加了源JAR。

但是当我在Tomcat 6上运行该死的东西时,我不断地通过“编辑源查找路径”按钮获得“未找到源”页面。但是源已经在构建路径中附加了。什么不起作用?

当我通过单击“编辑源查找路径”按钮手动将其指向JAR文件时,它可以正常工作。当我手动将其指向文件夹时,它不起作用。为什么Eclipse或Tomcat没有在构建路径中获取附加的源?

注意:我正在使用apache-maven-3.0.4,apache-tomcat-6.0.16和Eclipse Indigo Service Release 2.

8 个答案:

答案 0 :(得分:16)

虽然这个bug在所有错误@Sonatype中得票最多,但还没有修复。

但是我已经在Eclipse Bugzilla上填写了一个增强请求,如果您同意这个问题“找不到来源”应该修复,请投票给它here

您可以找到三种解决方法here

答案 1 :(得分:5)

我找到了这个com.ifedorenko.m2e.sourcelookup插件。该链接在“ Java Debugging: Source not found ”中提供。

转到Help > Install New Software ..并使用

  

http://ifedorenko.github.com/m2e-extras/

搜索链接。安装此插件后,我终于能够调试依赖项的源代码。

答案 2 :(得分:2)

调试配置对话框中使用外部 Maven而不是默认的 Embedded

请参阅下面的示例屏幕截图(菜单运行 - >调试配置...):

Configure external Maven

经过测试的环境:

  • 适用于Java开发人员的Eclipse IDE:Oxygen.1a版本(4.7.1a),64位(来自spring.io)
  • Oracle JDK jdk1.8.0_144,64位
  • Maven:3.5.2
  • 操作系统:Windows 10企业版N,64位
  • 测试目标hpi:run(示例Jenkins插件)

答案 3 :(得分:1)

在我的情况下,问题与“调试配置”附带的源代码有关,也许一些残余形成了向Maven的迁移。

我通过转到“Debug Configurations ...”页面然后选择配置来解决它,然后在“Sources”选项卡中我恢复了默认值,它添加了所有项目的Maven依赖项。

答案 4 :(得分:0)

Window-> Preferences-> JBoss Tools-> Source Lookup

确保检查"自动将JBoss Maven源容器添加到所有JBoss As启动配置"。 并在"自动配置Java源附件", 选择"始终"。

这有助于我解决问题。

答案 5 :(得分:0)

我想我通过更新Eclipse m2e为自己解决了这个问题。 我想我的版本是1.2,然后更新到最新[截至编写] 1.6.2。

Eclipse Bug comments让我明白这一点。

现在我可以调试到我的gquery-dnd-bundle-1.0.6!

答案 6 :(得分:-2)

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>${version.maven-source-plugin}</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar-no-fork</goal>
                        <goal>test-jar-no-fork</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

答案 7 :(得分:-2)

“目标”maven项目应该在“客户端”项目可以访问源代码之前发出它的源代码。我通过在“目标”项目中使用maven-source-pluging解决了这个问题:https://maven.apache.org/plugins/maven-source-plugin/index.html

只需在目标项目的pom.xml文件中使用以下代码段,制作发行版,并将发布版本用于客户端项目的pom.xml文件中。然后eclipse可以自动让你“跳”到无缝的目标项目:

dataSets