eclipse 调试器:附加 Maven 依赖项的源代码?

Posted

技术标签:

【中文标题】eclipse 调试器:附加 Maven 依赖项的源代码?【英文标题】:eclipse debugger: attaching source-code of maven dependencies? 【发布时间】:2010-12-20 23:42:08 【问题描述】:

在 myEclipse 8 中调试我们的 webapp 时,我想使用 maven 管理的依赖项的源代码。

我已设法将源附加到“Maven Managed Dependencies”类路径容器中的库,即当我从依赖项打开类文件(例如使用 Ctrl-Shift-T)时,我会看到源代码。

但是,当我为我的 tomcat 定义服务器连接器,将 wepapp 部署到它,并在调试模式下启动它并在同一类中的断点处停止执行时,编辑器窗格仅显示文本“未找到源” ,以及一个用于编辑“源查找路径”的按钮。我试图手动添加“Maven Managed Dependencies”类路径容器,只是被告知“使用 maven 项目设置来配置依赖解析”。但是,我在该属性窗格中看不到有用的设置...

如何附加这些来源?我知道这适用于 m2e 插件和 wtp,但我宁愿避免说服团队的其他成员切换插件...

【问题讨论】:

【参考方案1】:

请在 Eclipse IDE(Tested with Version: 3.5.2) 中执行以下步骤,

    在包资源管理器中,右键单击与 Maven 容器集成的项目。 选择 Maven 2,然后选择“获取源 JAR”。 上述操作将获取 Maven 类路径中存在的所有 3rd 方 jar 的源代码。

问候, 拉杰什。

【讨论】:

如果依赖项发生了变化,可能会再次出现“找不到源”错误。只需单击“编辑源查找路径”并立即单击“确定”(应在所有依赖项中再次搜索)。【参考方案2】:

我后来发现只有在使用启动配置启动服务器时才会出现此问题。

如果服务器由以下人员启动,则不会出现问题:

    单击工具栏中的服务器图标 -> 出现上下文菜单 将鼠标悬停在目标服务器上 -> 出现子菜单 点击“开始”

虽然这排除了通过将启动配置检查到版本控制中来共享服务器配置,但它至少允许无缝调试。

【讨论】:

【参考方案3】:

只需将 .m2/repository/ 文件夹本身与搜索子文件夹选项一起放置即可。

【讨论】:

【参考方案4】:

看起来像issue MNGECLIPSE-983

我已经确认,如果我手动选择 External Archive 选项并找到相关的 -sources jar(导航那个大 .m2/repository 树来找到它),然后将 jar 添加为它确实有效的源,令人惊讶的是它确实有效记住下次还不错。 我认为这至少是可行的,因为我们并不经常需要通过外部依赖进行单步调试,但是当我们这样做时,它通常很频繁,所以添加一次会有点痛苦,可以根据具体情况进行基础。

【讨论】:

+1 链接。但是,解决方法非常麻烦,因为我们将项目签入到版本控制中,并且并非所有开发人员都将他们的 maven 存储库放在同一个地方。因此,我仍在寻找更好的解决方案。 我认为应该可以在eclipse配置中使用一个变量作为本地存储库的位置。所以每个开发者只需要设置那个变量。 使用添加外部存档选项添加 jar 对我不起作用。有什么具体原因吗? @vis 7 年后,我不确定。也许在这里问一个新问题最好?

以上是关于eclipse 调试器:附加 Maven 依赖项的源代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何下载 Maven 项目的特定 JAR 依赖项的源代码

Eclipse 项目中缺少 Maven 依赖项

IntelliJ 可以显示像 Eclipse 这样的可搜索的 maven 依赖项吗?

如何将 maven 托管依赖项复制到 war\web-inf\lib 中,以便我可以在 Eclipse 中以调试模式运行我的 GWT 2.0 应用程序?

Eclipse java调试:找不到源

为啥有排除 pom.xml / maven 中依赖项的依赖项的选项?