Quarkus实战:专为Kubernetes而优化的Java解决方案
上QQ阅读APP看书,第一时间看更新

2.5 使用开发模式实时重载

问题

如何检测项目中的更改结果,而不需要重新打包和重新部署完整的应用程序?

解决方案

使用开发模式,可以通过后台编译实现热部署,这意味着当你修改你的Java文件或资源文件并刷新浏览器时,这些更改将自动生效。

每个搭建脚手架的方法都默认为Java 11。你需要一个Java 11虚拟机,或者修改项目以使用不同版本的JVM。

讨论

要在开发模式下启动应用程序,需在项目的根目录下运行quarkus:dev命令。以下的例子使用的是在2.1节中创建的项目:

当应用程序启动并运行后,打开一个新的终端窗口并运行以下命令:

现在在不停止quarkus:dev模式的情况下,在org.acme.quickstart.GreetingResource.java中做如下修改。

然后运行以下命令:

需要注意,你已经对源代码做了一个更改,而且不需要再重新编译、重新打包或重新部署,这个更改已经被自动填充到正在运行的实例中——不需要任何特殊的设置。

现在,你已将编码→编译→部署→刷新→重复这一开发工作流程简化为编码→刷新→重复。

开发模式会检测Java文件、应用程序配置和静态资源的更改。

要停止开发模式,需进入quarkus:dev端点,按Ctrl+C。

要在Gradle项目中运行开发模式,可以运行一个quarkusDev任务: