嵌入式Jetty中的热部署

16

我有一个Spring Roo项目,使用mvn jetty:run运行我的应用程序。唯一的问题是对于*.java类的更改不会热部署,而*.jspx的更改可以正常热部署。

那么我该如何配置mvn jetty来热部署Java类?

1个回答

24

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

scanIntervalSeconds - 扫描Web应用程序更改并重新启动上下文(如果需要)的间隔时间(秒)。如果启用了reload,则被忽略。默认情况下禁用。 默认值为:0。

因此,配置可能如下所示:

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

启用后,Jetty Maven插件将扫描在classDirectory中定义的目录(默认情况下指向${project.build.outputDirectory},即target/classes),以检查是否有更改。

你只需要让IDE编译target/classes中的类(或运行mvn compile),Jetty就会在Java类发生更改时重新启动上下文。


Jetty重新部署类时出现404错误。有什么建议可以避免这种情况吗?还可以参考这个问题:http://stackoverflow.com/questions/23343243/jetty-404-error-page-on-hot-deployment - tholu
1
不幸的是,在Java世界中,零停机时间的重新部署需要大量的工作 :( 编辑:将尝试使用此链接:http://www.rafaelsteil.com/zero-downtime-deploy-script-for-jetty/ - tholu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接