【发布时间】:2010-03-04 08:50:11
【问题描述】:
我们有一个大型的多模块 Maven 项目。通常的工作方式是检查一些你感兴趣的模块,对于它们依赖的其他模块,使用 Maven 提供的快照 JAR。
这似乎很有效;当我们需要更新快照时,我们只需从“Maven 项目”选项卡强制重新导入。但是,重新导入的快照似乎从未重新编制索引。
重现步骤:
- 在一个项目中,签出/配置一个依赖于某个其他模块的 Maven 快照的模块。
- 在单独的项目中,对其他模块进行更改,例如添加一个方法,并将其部署到 Maven 存储库。
- 在第一个项目中,更新快照。
- 在第一个项目中,编写一些调用新方法的代码。
预期:
- 调用新方法没有问题。
实际:
- 方法调用用“无法解析方法”错误红线。然而:
- 代码会编译(通过构建或上下文菜单)
- 代码会运行,包括调用新方法的代码
有没有办法解决这个问题?摆脱红线,自动完成等工作会很好,并且通常能够以您应该的方式继续使用 IDEA。
可能相关:我们混合了 Eclipse 和 IDEA 开发人员,为了解决一些 Eclipse/Maven 集成错误,我们在 pom.xml 文件中将快照 updatePolicy 设置为“never”。但是,我希望 IDEA 设置(快照更新策略:始终更新)会覆盖此设置,除非我误解了该设置的作用。
(“从不”可能看起来违反直觉,但我认为这对开发人员来说是正确的:手动更新依赖项,就像手动从 VCS 更新源代码一样。对于真正的构建,我们让 Hudson 覆盖 POM 设置。更重要的是,将其设置为“从不”会阻止 Eclipse 进行不必要的完全重新编译。)
【问题讨论】:
标签: intellij-idea maven