我们有一个大型的多模块Maven项目。通常的工作方式是检查你感兴趣的几个模块,以及他们依赖的其他模块,使用Maven提供的快照JAR。在IDEA中,有没有办法强制重新编排Maven快照?
这似乎大多工作;当我们需要更新快照时,我们只需从“Maven项目”选项卡强制重新导入。但是,重新导入的快照似乎从未被重新编入索引。
重现步骤:
- 在一个项目中,检查/配置依赖于其他模块的Maven的快照的模块。
- 在单独的项目中,对其他模块进行更改,例如,添加一个方法,并将其部署到Maven存储库。
- 在第一个项目中,更新快照。
- 在第一个项目中,编写一些调用新方法的代码。
预计:
- 不麻烦调用新方法。
实际:
- 方法调用与 “无法解决方法” 的错误红线。但是:
- 代码编译并(通过生成或上下文菜单)
- 代码并运行,包括调用新方法
有一些解决这个方法的代码?这将是很好的摆脱红线,让自动完成等工作,并且通常能够继续按照你应该的方式使用IDEA。可能相关:我们有Eclipse和IDEA开发者的混合体,为了解决一些Eclipse/Maven集成的bug,我们在我们的pom.xml文件中设置了快照updatePolicy为“never”。但是,我期望IDEA设置(快照更新策略:始终更新)覆盖此设置,除非我误解设置的作用。 (“Never”看起来似乎违反直觉,但我认为开发人员是正确的:手动更新依赖关系,就像手动更新VCS源代码一样,对于真正的构建,我们有Hudson覆盖POM设置。重要的是,将它设置为“从不”会阻止Eclipse免于不必要的总重编译)
自从我张贴这篇文章以来,我已经更换了工作,但是基于IDEA和Maven的最新经验,我怀疑您是对的 - 如果“同步”无法解决问题,那么可能会强制重建索引。 –
我很少需要重建索引(假设你的意思是无效的缓存?) – ianpojman