我正在使用 Intellij Idea 12 并有一个多模块 maven 项目。
为了简单起见,让我们假设我有:
- 模块 A - 编译为 JAR
- 模块 B - 取决于模块 A 并编译为 JAR
- 模块 C - 取决于模块 B,但编译为 WAR
我知道 Intellij 有它自己的 maven 项目构建机制,所以当我第一次构建 WAR 并将其部署到 Tomcat 时,通常一切正常。当您需要在其中一个子模块中进行更改时,问题就开始了,例如模块 A 并重建战争(重建模块 C)
Intellij 似乎使用了以前构建的旧模块 A jar,并忽略了我在制作/构建模块 C 时在模块 A 中所做的任何更改。
我发现解决此问题的唯一方法是在模块 A 和 B 上运行 Maven 构建,并最初使用 Maven 构建 WAR 并将其部署为外部源。
问题是我要部署 10 个 WAR,以及 20 多个编译成 jar 的子模块。当我只想查看我在影响一个 WAR 的子模块之一中所做的更改时,重建所有战争是没有意义的。并且在支付 Intellij Ultimate 许可证的同时使用命令行在外部构建它们肯定没有意义(所以我可以使用应用程序服务器)
现在将此行为与其他 IDE 进行比较 1. Netbeans 自然地通过 Maven 与 maven 项目一起工作,所有构建/部署等都是使用 Maven 完成的,而不是通过某种内部机制。2. Eclipse 的内部机制也是如此,但所有 JAR 都会在 WAR 项目重建时更新。(或其他一些有效的魔法)
IDEA 是否有不同的工作方式,或者没有?