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