【问题标题】:Maven + Tomcat hot deployMaven + Tomcat 热部署
【发布时间】:2011-12-06 15:54:18
【问题描述】:

我在互联网上搜索了这个问题,但没有找到单一的解决方案。我们有一个 maven 项目,它使用配置文件来构建适合 dev/qa/prod 环境的工件,使用 YUI 插件对 JS 和 CSS 进行缩小。它使用 Spring 进行依赖注入,使用 struts 作为 UI 框架。 Ibatis 用作 ORM 映射器。我们在 windows 上使用 Eclipse IDE,而不是使用集成的 eclipse,因为我们需要部署 Unix 服务器。现在,我的问题是,有没有办法以这样的方式部署此解决方案,即更改 js、css、jsp、spring 的 applicationContext 文件、struts.xml、ibatis 映射器文件,当然还有 Java 代码,无需服务器即可立即生效重新开始。我记得 spring-groovy 插件支持重新加载上下文以更改 groovy 文件。所以,我想应该也有一种支持热部署的方法。

【问题讨论】:

标签: java spring maven tomcat6


【解决方案1】:

我发现 maven tomcat 插件很慢,因为它总是使用 tomcat 的客户端部署程序,并通过管理器上的 http 调用进行部署,例如 localhost:8080/manager/text

Tomcat 有一个由“autoDeploy”管理的 Web 应用程序重新加载机制,您可以阅读它here。因此,只要应用程序战争发生变化,它就会重新加载,我对我的maven-war-plugin 进行了以下更改:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <outputDirectory>${my.tomcat.path}</outputDirectory>
    </configuration>
</plugin>

在哪里

<properties>
    <my.tomcat.path>[MY TOMCAT WEBAPP PATH]</my.tomcat.path>
</properties>

之后我只需要mvn compile war:warmvn compile package

【讨论】:

    【解决方案2】:

    Maven 与 Netbeans 的集成为您完成了这项工作。只需文件->打开您的项目,单击运行(它会部署并生成一个用于测试的 Web 浏览器),然后在 IDE 中修改您的代码,每次单击保存时将热部署更改。

    【讨论】:

      【解决方案3】:

      这听起来像JRebel。 (对不起广告)。

      【讨论】:

      • JRebel ,它支持maven吗?我以为它只是当你从 eclipse 运行它时
      • JRebel 不支持 maven 的 tomcat 插件。附言如果你真的对这个广告感到抱歉,你就不会发布它。
      【解决方案4】:

      您可以尝试maven tomcat plugin - 特别是tomcat:run 目标。您还可以配置 maven eclipse 插件以创建动态 Web 项目,然后从 eclipse 中进行部署。

      【讨论】:

        猜你喜欢
        • 2016-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-26
        • 1970-01-01
        • 1970-01-01
        • 2017-04-17
        • 2015-02-05
        相关资源
        最近更新 更多