【问题标题】:Intellij Debugging picking up old version project filesIntellij Debugging 拾取旧版本项目文件
【发布时间】:2013-09-28 22:13:25
【问题描述】:

我在 Intellij 中调试代码。我使用 maven 构建项目,并且在本地 .m2 存储库中有各种版本的项目。当我开始调试时,Intellij 会继续从项目的先前快照中选择旧版本的代码。如何让 IntelliJ 调试本地存储库中的最新代码?

【问题讨论】:

  • maven“自动导入”开启了吗?如果你查看外部库下的Project 窗格,你能看到那里的快照 jar 吗?如果您右键单击它并选择“打开库设置”,Classes 是否显示正确的 jar、正确的 maven repo 以及正确的日期和时间?

标签: debugging maven intellij-idea


【解决方案1】:

您可以告诉 Intellij 2016 每次都询问您要单步执行哪些源代码。 文件->设置->调试器

显示替代源切换器

【讨论】:

    【解决方案2】:
    1. 尝试从 ~/.m2/repository/ 中删除包含您的代码的 .jar 和 .war 文件 对我来说,问题是我构建了一些东西,它现在在 Maven 中注册在 Maven 认为更新的版本下,但不是我目前正在处理的。例如,我编译了“2.1”版本来调试某些东西,然后又回到了“sand-box-idea-SNAPSHOT”的工作上。我一直在想,为什么 Intellij 不接受我最新的沙盒更改,但这是因为它遵循 Maven 版本 2.1,Maven 认为它比“沙盒快照”更好。

    2. 可能是您有一些插件干扰了 IntelliJ 的构建过程。我知道 Google Protocol Buffers Plugin 会导致我的 Intellij 无法检测到需要重新编译的脏类。

    【讨论】:

    • 我曾经让 sonatype 的人调查 1) 但他们无法重现它。很高兴看到我不是在想象事情 ;) (getsatisfaction.com/sonatype/topics/…)
    • 这种行为真的让我很恼火......尤其是因为 pom.xml 指定了我们要使用的版本——不知道为什么调试器无法建立连接。注意:删除以前版本的非快照 jar 突然解决了我的依赖问题。
    • 在我的情况下,仍然很少有旧的依赖项,只有在我删除 .m2 repo 文件夹并重建后才会抱怨。更正了版本。
    【解决方案3】:

    我遇到过类似的行为,也许它可以帮助你:-)

    我开发了应用程序(使用 maven),在此期间我将输出包装从 jar 更改为 war。 Maven 存储库包含两个版本,jar 和 war,因为当您更改旧 jar 时,maven 不会删除它。由于项目指向 mvn 存储库,它仍然使用对 jar 的旧引用,但更新了 war 中的新版本。

    我真的很沮丧,因为 maven 编译和测试工作正常,但 Idea 使用了我的旧版本。我已经重建了idea项目,后来效果很好。

    【讨论】:

      【解决方案4】:

      我最近从 IDEA 13 升级到 IDEA 14 后看到了这一点。似乎在 IDEA 13 中创建的启动配置不再在启动前自动触发 mvn 包。

      为了解决这个问题,我在“启动前”对话框中手动添加了一个 mvn 目标。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-18
        • 1970-01-01
        • 2020-06-09
        • 1970-01-01
        • 1970-01-01
        • 2015-03-01
        • 1970-01-01
        相关资源
        最近更新 更多