使用IntelliJ Idea,Maven,Tomcat和JRebel进行爆炸战争部署

时间:2013-01-23 10:48:13

标签: maven web intellij-idea jrebel

我正在使用IntelliJ Idea 12,Maven,JRebel和Tomcat开发基于Web的应用程序。为了利用JRebel,自动重新加载对Spring bean的更改,我使用了Intellij提供的爆炸式战争部署

IntelliJ exploded war deployment

由于Maven模块,IntelliJ完全按照Maven的惯例将Java文件编译到输出文件夹(目标/类),这与爆炸的webapp directoy 不同(目标/弹簧 - MVC-陈列柜/ web应用/ WEB-INF /班)即可。因此,Tomcat和JRebel无法重新加载这些新类的更改。

目前,我暂时将IntelliJ的输出文件夹指向文件夹 WEB-INF / classes ,以便可以重新加载更改。由于我不想打破Maven惯例,有人能告诉我一个更优雅的解决方案吗?

target (Maven generated artifact directory)
  |
   -- classes (compiled)
  |
   -- spring-mvc-showcase (exploded webapp directory)
           |
            -- WEB-INF
                 |
                   -- classes

3 个答案:

答案 0 :(得分:2)

正确配置后,当你启动Tomcat时,你会看到类似这样的内容:

[2013-01-23 15:39:12] JRebel: Directory '/home/xxx/workspace/xxx/trunk/target/classes' will be monitored for changes.
[2013-01-23 15:39:12] JRebel: Directory '/home/xxx/workspace/xxx/trunk/src/main/webapp' will be monitored for changes.

然后我做的是每次我改变一些东西,而不是运行maven包,我执行“Make project”(在IDEA中),/ target / classes文件夹得到更新,配置将自动重新加载它的类。

答案 1 :(得分:1)

您是否安装了IntelliJ IDEA JRebel插件?它添加了一个动作“Generate rebel.xml”。这将生成一个rebel.xml文件,该文件最终应该在部署中的WEB-INF / classes中,并将这些类映射到IDEA编译它们的位置。

答案 2 :(得分:0)

这是使用IDEA,Jrebel和maven-tomcat快速启动热部署的简单方法。 IDEA hot deploy web application using JRebel and tomcat7-maven-plugin