Skip to content

自动重载

在开发过程中重启
了解如何运行 Ktor 服务器应用程序。
服务器可能需要一些时间。 Ktor 允许你通过使用自动重载来克服此限制,它可以在代码更改时重新加载应用程序类,并提供快速反馈循环。 要使用自动重载,请遵循以下步骤:

启用开发模式

要使用自动重载,你首先需要启用开发模式。 这取决于你

创建和运行服务器
了解如何根据你的应用程序部署需求创建服务器。
的方式:

  • 如果你使用 EngineMain 运行服务器,请在配置文件中启用开发模式。

  • 如果你使用 embeddedServer 运行服务器,你可以使用 io.ktor.development 系统属性。

启用开发模式后,Ktor 将自动监视工作目录中的输出文件。 如果需要,你可以通过指定监视路径来缩小监视文件夹的范围。

配置监视路径

当你启用开发模式时, Ktor 会开始监视工作目录中的输出文件。 例如,对于一个使用 Gradle 构建的 ktor-sample 项目,将监视以下文件夹:

监视路径允许你缩小监视文件夹的范围。 为此,你可以指定监视路径的一部分。 例如,要监视 ktor-sample/build/classes 子文件夹中的更改, 请将 classes 作为监视路径传递。 根据你运行服务器的方式,你可以通过以下方式指定监视路径:

  • application.confapplication.yaml 文件中,指定 watch 选项:

    yaml

    你还可以指定多个监视路径,例如:

    yaml

    你可以在这里找到完整示例:autoreload-engine-main

  • 如果你正在使用 embeddedServer,请将监视路径作为 watchPaths 形参传递:

    Kotlin

    有关完整示例,请参见 autoreload-embedded-server

更改时重新编译

由于自动重载会检测输出文件中的更改, 你需要重新构建项目。 你可以在 IntelliJ IDEA 中手动执行此操作,或者使用 Gradle 中的 -t 命令行选项启用持续构建执行。

  • 要在 IntelliJ IDEA 中手动重新构建项目,请从主菜单中选择 Build | Rebuild Project

  • 要使用 Gradle 自动重新构建项目, 你可以在终端中运行带有 -t 选项的 build 任务:

    TIP

    要在重新加载项目时跳过运行测试,你可以将 -x 选项传递给 build 任务: