所以我在IntelliJ中有一个maven模块(模块-A).我最近将一些类从它移动到另一个新的maven模块(模块-B)并添加了一个依赖项.一旦我完成了这个,我还修改了一个移动类的方法的签名(现在在模块B中).
我重新导入了poms,以便IntelliJ获取依赖项更改并确保受影响文件的所有Java导入再次正确.现在,当我尝试运行我的webapp(取决于两个模块)时,我在module-A中的类中遇到编译错误,调用模块-B中类的修改方法.
错误消息基本上是说该方法不存在但认为旧方法仍然存在!我点击'make'错误,它将我带到模块A中的一个类中,调用修改后的方法...奇怪的是,IntelliJ知道它在文件中很好.ie该方法没有加下划线,就像编译错误一般,但类文件名是:(
我使用'mvn install'(也安装了模块-B)从命令行编译它并且它都是成功的.我删除了模块A和模块B的目标中的classes目录,并且还使IntelliJ的缓存失效并重新启动......仍在发生......任何想法?
正如您可能知道的那样,新版本的SBT(作为0.11)旨在维护公共库缓存,~/.ivy2/cache而不是复制项目目录中的完整依赖项集.但IntelliJ Idea(我使用SBT插件生成一个Idea项目)默认似乎忽略了公共缓存,只看到放在项目目录下的库(所以,我必须配置SBT来执行这种传统方式).如何解决这个问题?
Idea插件存储库中有一些Ivy插件,但我不知道它们中哪些(如果有的话)可以解决问题(请注意,我不希望它管理依赖项并下载库(因为它已完成)通过SBT)但只是在缓存中查找类).