如何在Tomcat环境中设置JRebel

时间:2011-06-15 10:13:15

标签: eclipse tomcat jrebel

我很难让JRebel在当前的开发环境中工作。

我有多模块maven项目。目前,Tomcat实例通过服务(tomcat监视器)进行控制,部署的Web应用程序使用位于 $ {catalina.home} / conf / Catalina / localhost 的XML进行配置,其中docBase属性指向< strong> $ {绝对maven项目路径} / target / app (并且属性reloadable为true)。因此,每次我进行maven构建时,如果有任何类更改,我只需要手动重启tomcat。如果修改发生在静态资源(JSP,HTML,JS, 等。)页面刷新会做到这一点。

在我第一次尝试时,我将Web应用程序配置为在Eclipse内运行的tomcat服务器上运行。提供的maven插件也配置成功:我的所有子模块都继承了插件配置,我可以在tomcat启动时看到来自JRebel的输出消息,指示已经监听的绝对项目路径。唯一的问题是Eclipse WTP / Tomcat插件在eclipse中没有使用War覆盖功能。启动服务器后,仅部署了最后一个Web应用程序(具有其他War作为依赖项的模块)中的资源。

所以,我回到原来的配置开发并向它介绍了JRebel。我将JRebel java选项传递给Tomcat Vm,所有maven模块都有rebel.xml(监听正确的资源文件夹),但没有任何反应。我无法看到通常的JRebel消息,我尝试更改源文件夹中的JSP并进行页面刷新但是文件没有自动重新部署(在这种情况下是来自源文件夹的简单副本$ {maven.projec } / target / app会做的伎俩。)

我的两个问题是:

  1. 有可能超过日食WTP问题吗?
  2. 什么是涉及maven eclipse和外部tomcat的功能开发环境?
  3. 非常感谢任何帮助!


    更新1

    所以,我明白了。有点......我仍在努力与战争模块重叠。我有一个主Web应用程序模块,它依赖于几个webapps模块。因为rebel.xml是在主webapp构建发生时通过jrebel maven插件动态生成的,所以只有它的jrebel.xml才有效。所有其他人都被压扁了。 jars模块的rebel.xml位于正确的位置(在jar文件中)。

    如果我为主webapp创建一个自定义rebel.xml,指向包含源文件(静态文件,如JSP,HTML,JS,CSS,图像等)的所有绝对目录,我就可以使用它。依赖的网络应用程序。但这对我的团队开发环境毫无价值。我正在使用maven属性,但我们有两个不同的maven多模块层次结构,彼此不了解,我不能使用根pom来连接它们。因此,这些属性不足以保证rebel.xml中每台开发人员机器上生成的绝对路径都是正确的。

    目前,我正在尝试使用某种maven插件来处理rebel.xml合并。记录尚未成功。

    这是另一个与原问题有点不同的问题:)也许我应该通过另一个问题。


    更新2

    我得到了它的工作!终于。 我使用XSLT Generator Maven Plugin来帮助我合并各种rebel.xml文件。还必须使用神话般的Maven Copy Plugin,因为xslt转换发生在最终的war包装之后,我不得不将生成的rebel.xml添加到该WAR。

    如果有人需要配置文件的详细信息,请不要犹豫。

    希望这可以帮助那些人。

1 个答案:

答案 0 :(得分:0)

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