我正在使用 IntelliJ Idea 12、Maven、JRebel 和 Tomcat 开发基于 Web 的应用程序。为了利用JRebel,自动重新加载对Spring beans的更改,我使用了下面Intellij提供的exploded war deployment
由于 Maven 模块,IntelliJ 完全遵循 Maven 的约定将 Java 文件编译到输出文件夹 (target/classes),这与展开的 webapp directoy (target/spring- mvc-showcase/webapp/web-inf/classes)。因此,Tomcat 和 JRebel 无法重新加载这些新类的更改。
目前,我暂时将 IntelliJ 的输出文件夹配置为指向文件夹 WEB-INF/classes 以便可以重新加载更改。因为我不想打破 Maven 约定,谁能告诉我一个更优雅的解决方案?
target (Maven generated artifact directory)
|
-- classes (compiled)
|
-- spring-mvc-showcase (exploded webapp directory)
|
-- WEB-INF
|
-- classes
请您参考如下方法:
正确配置后,当您启动 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 文件夹被更新并且配置将自动重新加载它的类。


