2010-03-03 109 views
14

我有一个Spring Roo项目,我使用mvn jetty:run来运行我的应用程序。唯一的问题是*.java类的更改不会热部署,而更改为*.jspx热部署良好。在嵌入式码头热部署

那么,如何配置mvn jetty以便为java类进行热部署?

回答

22

您需要将scanIntervalSeconds设置为大于0的值来启用它:

scanIntervalSeconds - 在几秒钟的时间间隔来扫描Web应用程序更改,如果需要重新启动的情况下。如果重新启用,则忽略。默认情况下禁用。 默认值为:0

所以配置可能会是这样的:

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>maven-jetty-plugin</artifactId> 
    <version>6.1.22</version> 
    <configuration> 
    <scanIntervalSeconds>1</scanIntervalSeconds> 
    </configuration> 
</plugin> 

一旦启用,码头Maven插件将扫描classDirecory定义的目录(由指向${project.build.outputDirectory}默认即target/classes)进行更改。

然后,您只需要让IDE在target/classes(或运行mvn compile)中编译类,并且在Java类上进行更改后,Jetty将重新启动上下文。

+0

非常感谢! :) – portoalet 2010-03-03 12:33:48

+0

Jetty重新部署类时有404个错误。任何建议如何避免它们?也看到这个问题:http://stackoverflow.com/questions/23343243/jetty-404-error-page-on-hot-deployment – tholu 2014-05-07 12:43:49

+1

不幸的重新部署与零宕机需要在Java世界上的很多努力:(编辑:将试试这个:http://www.rafaelsteil.com/zero-downtime-deploy-script-for-jetty/ – tholu 2014-07-03 13:02:32