跳至主要内容

Maven Jetty plugin

在 ChatGPT 中打开

Maven Jetty 插件是一个流行的工具,允许开发人员直接从他们的 Maven 项目中在嵌入式 Jetty 服务器上运行 Java 网络应用程序。

Jetty 插件启动一个嵌入式 Jetty 服务器,监视您应用程序的文件,包括 Java 类和资源,以检测更改。当它检测到更新时,它会自动重新部署应用程序,从而加快开发进程,消除手动构建和部署步骤。

前端更改

src/main/frontend 下的更改由 frontend watch 处理,该工具会重建这些更改并在服务器旁边刷新浏览器。

Jetty 配置

以下是一些用于微调插件热部署和服务器交互设置的基本配置:

属性描述默认值
scan配置 Jetty 服务器检查 pom.xml 中文件更改的频率。骨架项目将此设置为 2 秒。增加此间隔可以减少 CPU 负载,但可能会延迟更改在应用程序中的反映。1

webforJ 配置

属性描述默认值
webforj.reloadOnServerError在使用热重新部署时,整个 WAR 文件会被交换。如果在服务器重启期间客户端发送请求,则会发生错误。此设置允许客户端尝试重新加载页面,假设服务器很快会重新上线。仅适用于开发环境,只处理与热重新部署特定的错误。on
webforj.clientHeartbeatRate设置客户端 Ping 查询服务器可用性的间隔。这保持客户端与服务器之间的通信开放。对于开发,使用较短的时间间隔以便于更快的错误检测。在生产中,将此设置为至少 50 秒,以避免过多请求。50s

使用注意事项

虽然 Jetty 插件在开发中非常有效,但它有一些潜在的限制:

  • 内存和 CPU 使用:频繁的文件扫描,如果在 pom.xml 中设置较低的 scan 值,可能会增加资源消耗,尤其是在大型项目中。增加间隔可能会减少负载,但也会减慢重新部署速度。

  • 有限的生产使用:Jetty 插件设计用于开发,而不是生产环境。它缺乏生产所需的性能优化和安全配置,更适合本地测试。

  • 会话管理:在热重新部署期间,用户会话可能不会被保留,尤其是在代码发生重大结构更改时。这可能会干扰涉及用户会话数据的测试,要求手动管理会话或为开发配置解决方法。