Maven + Tomcat热部署

时间:2011-10-13 04:34:22

标签: java spring maven tomcat6

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

4 个答案:

答案 0 :(得分:2)

我发现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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

Maven与Netbeans的整合为您做到了这一点。只需文件 - &gt;打开您的项目,单击运行(部署并生成Web浏览器进行测试),然后在IDE中修改代码,每次单击“保存”它将热部署变更。