我在Intellij中调试代码。我使用maven来构建项目,并且在本地.m2存储库中有各种版本的项目。当我开始调试时,Intellij继续从项目的上一个快照中选择旧版本的代码。如何使IntelliJ从本地存储库调试最新代码?
答案 0 :(得分:7)
答案 1 :(得分:4)
尝试从〜/ .m2 / repository /中删除包含代码的.jar和.war文件 对我来说问题是我构建了一些东西,现在它已经在Maven中注册了Maven认为的新版本,但不是我目前正在进行的工作。我编译,比方说,版本“2.1”调试的东西,然后回到工作“沙盒 - 想法 - SNAPSHOT”我一直在想为什么不是Intellij拿起我最新的沙盒改变,但这是因为它推迟到Maven假设的Maven版本2.1比'sand-box-SNAPSHOT'更好。
可能是您有一些插件干扰了IntelliJ的构建过程。我知道Google Protocol Buffers Plug In会导致我的Intellij无法检测到需要重新编译的脏类。
答案 2 :(得分:1)
我遇到了类似的行为,也许它可以帮到你: - )
我开发了app(使用maven),在此期间我将输出包装从jar更改为war。 Maven存储库包含两个版本,jar和war,因为maven在您更改它时不会删除旧jar。由于项目指向mvn存储库,它仍然使用jar的旧引用,但战争中的新版本已更新。
我真的很沮丧,因为maven编译和测试工作正常,但Idea使用了旧版本。我有重建想法项目,后来工作得很好。
答案 3 :(得分:0)
在从IDEA 13升级到IDEA 14之后,我最近才看到这一点。似乎在IDEA 13中创建的启动配置不再在启动之前自动触发mvn包。
为了解决这个问题,我在"发布之前"手动添加了一个mvn目标。对话框。