嵌入式码头热部署

Posted

技术标签:

【中文标题】嵌入式码头热部署【英文标题】:hot deploy in embedded jetty 【发布时间】:2011-01-23 02:44:08 【问题描述】:

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

那么如何配置 mvn jetty 来为 java 类进行热部署呢?

【问题讨论】:

【参考方案1】:

您需要将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>

一旦启用,jetty maven 插件将扫描classDirecory(默认指向$project.build.outputDirectory,即target/classes)中定义的目录以进行更改。

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

【讨论】:

Jetty 重新部署类时出现 404 错误。任何建议如何避免它们?另请参阅此问题:***.com/questions/23343243/… 不幸的是,零停机时间的重新部署需要在 Java 世界中付出很多努力:( 编辑:将尝试这个:rafaelsteil.com/zero-downtime-deploy-script-for-jetty

以上是关于嵌入式码头热部署的主要内容,如果未能解决你的问题,请参考以下文章

如何为嵌入式码头/弹簧安全启用 HTTP 摘要?

如何使用嵌入式码头添加 servlet 过滤器

为啥有人会使用 jetty-maven-plugin 与嵌入式码头

如何让 WebApp 在嵌入式码头的类路径上找到应用程序属性?

markdown havre /像这样的码头工人运行嵌入式squashfs图像

嵌入式码头服务器的 Spring Boot 数据源特定属性