12

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

4

4 回答 4

14

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

显示替代源切换器

显示替代源切换器

于 2016-06-30T15:47:21.723 回答
6
  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 无法检测到需要重新编译的脏类。

于 2014-02-03T23:51:15.370 回答
1

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

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

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

于 2013-09-26T06:07:42.783 回答
0

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

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

于 2014-12-07T18:11:37.347 回答