Tal*_* G. 7 scala jar war intellij-idea maven
我正在使用Intellij Idea 12并拥有一个多模块maven项目.
为了简单起见,我们假设我有:
我知道Intellij有自己的maven项目构建机制,所以当我第一次构建WAR并将其部署到Tomcat时,通常都可以正常工作.当您需要在其中一个子模块中进行更改时,问题就开始了,例如模块A并重建战争(重建模块C)
Intellij似乎使用之前构建的旧模块A jar,并忽略我在创建/构建模块C时在模块A中所做的任何更改.
我发现解决这个问题的唯一方法是在模块A和B上运行Maven构建,并使用Maven初始构建WAR并将其部署为外部源.
问题是我要部署10个WAR,以及编译为jar的20个子模块.当我只想看到我在一个影响一个WAR的子模块中所做的更改时,重建所有战争是没有意义的.在支付Intellij Ultimate许可证时,使用命令行在外部构建它们是没有意义的(因此我可以使用应用程序服务器)
现在将此行为与其他IDE进行比较1. Netbeans通过Maven自然地与maven项目一起工作,所有构建/部署都是通过Maven完成的,而不是通过某种内部机制完成的.2. Eclipse使用它的内部机制做同样的事情,但是在重建WAR项目时会更新所有JAR.(或其他一些有用的魔法)
是否有一种与IDEA不同的方式或者没有?
最终我找到了一个混合解决方案:Tomcat 运行之前要做的事情:
这就是我启动 Tomcat 的方式。
详细资料:
创建 3 个 Maven 运行配置
1.1清理所有项目
1.2使用 JAR 工件构建所有项目。您需要使用“-pl”maven 选项手动包含所有项目。您可以选择在启动此配置之前运行“Maven clean”(查看屏幕截图)
1.3使用 WAR 工件编译所有项目 -不使用 Maven 打包
创建 Tomcat 配置以构建 War 工件并包含在 Launch 之前运行的其他配置
现在,当 Tomcat 运行时,可以热交换代码更改(如果 JVM 允许)或只需重新启动服务器即可包含所有新代码/更改。这样做的缺点是 Tomcat 的启动时间稍长。这是我们愿意忍受的事情......现在
| 归档时间: |
|
| 查看次数: |
1884 次 |
| 最近记录: |