如何在Tomcat环境中设置JRebel

问题描述

| 我很难让JRebel在当前的开发环境中工作。 我有多模块Maven项目。当前,Tomcat实例是通过服务(tomcat监视器)控制的,并且已部署的Web应用程序使用$ {catalina.home} / conf / Catalina / localhost中的XML配置,其中docBase属性指向$ {absolute maven project path} / target / app(并且reloadable属性为true)。因此,每次进行Maven构建时,只要更改了任何类,都只需手动重新启动tomcat。如果修改发生在静态资源(JSP,HTML,JS, 等等。)页面刷新会做到这一点。 第一次尝试时,我将Web应用程序配置为在Eclipse内部运行的tomcat服务器上运行。所提供的maven插件也已成功配置:我的所有子模块都继承了插件配置,并且我可以在tomcat启动中看到来自JRebel的输出消息,指示已监听的绝对项目路径。唯一的问题是Eclipse WTP / Tomcat插件不会在Eclipse中与War overlay功能发生冲突。启动服务器后,仅部署最后一个Web应用程序(具有其他War作为依赖项的模块)中存在的资源。 因此,我返回了原始配置开发并向其介绍了JRebel。我将JRebel Java选项传递给Tomcat Vm,所有maven模块都具有rebel.xml(侦听正确的资源文件夹),但是没有任何反应。我看不到通常的JRebel消息,我尝试在源文件夹中更改JSP并进行页面刷新,但是文件不会自动重新部署(在这种情况下,是源文件夹中的简单副本$ {maven .projec} / target / app就能解决问题)。 我的两个问题是: 是否有可能解决蚀WTP问题? 什么是包含Maven Eclipse和外部tomcat的功能开发环境? 任何帮助将非常感激! 更新1 所以,我明白了。有点...我仍在为战争模块重叠而苦苦挣扎。我有一个主要的Web应用程序模块,它依赖于几个WebApps模块。由于rebel.xml是在主webapp构建发生时通过jrebel maven插件动态生成的,因此仅以jrebel.xml为准。所有其他都被压扁。 jars模块的rebel.xml在正确的位置(在jar文件中)。 如果为主web应用程序创建一个自定义的rebel.xml,它指向包含相关网站的源文件静态文件,如JSP,HTML,JS,CSS,图像等)的所有绝对目录,则可以正常工作应用。但这对我的团队开发环境毫无价值。我正在使用Maven属性,但是我们有两个彼此不了解的Maven多模块层次结构,并且我不能使用root pom来连接它们。因此,这些类型的属性不足以保证rebel.xml中每个开发人员计算机上生成绝对路径都是正确的。 现在,我正在尝试使用某种Maven插件进行rebel.xml合并。没有成功的记录。 这正变成另一个问题,它与原始问题有所不同:)也许我应该通过另一个问题。 更新2 我知道了!。 我使用XSLT Generator Maven插件来帮助我合并各种rebel.xml文件。还必须使用神话般的Maven copy插件,因为xslt转换发生在最终的战争打包之后,我不得不将生成的rebel.xml添加到该WAR中。 如果有人需要配置文件的详细信息,请随时询问。 希望这可以帮助某个人。     

解决方法

        我知道了!。我使用XSLT Generator Maven插件来帮助我合并各种rebel.xml文件。还必须使用神话般的Maven Copy插件,因为xslt转换发生在最终的战争打包之后,我不得不将生成的rebel.xml添加到该WAR中。