Skip to content

オートリロード (Auto-reload)

オートリロード (Auto-reload)

開発中にサーバーを

再起動
Ktorサーバーアプリケーションの実行方法を学びます。
するには時間がかかる場合があります。 Ktorでは、オートリロード (Auto-reload)を使用することでこの制限を克服できます。これはコードの変更時にアプリケーションクラスをリロードし、素早いフィードバックループを提供します。 オートリロードを使用するには、以下の手順に従ってください。

制限事項

オートリロードは特定のモジュール宣言に対してのみ機能します。以下の表は、バージョンごとのサポート状況を示しています。
モジュールの種類<= 3.2> 3.2
ラムダ初期化子 (Lambda initializer)❌ サポートされていません❌ サポートされていません
ブロッキング関数の参照✅ サポートされています❌ サポートされていません
サスペンド関数の参照❌ サポートされていません✅ サポートされています
設定の参照 (Config reference)✅ サポートされています✅ サポートされています

サポートされている形式

kotlin

サポートされていない形式

kotlin

開発モードを有効にする

オートリロードを使用するには、まず開発モードを有効にする必要があります。 これは、

サーバーの作成および実行
アプリケーションのデプロイニーズに応じたサーバーの作成方法を学びます。
に使用した方法によって異なります。

  • EngineMainを使用してサーバーを実行する場合は、設定ファイルで開発モードを有効にします。

  • embeddedServerを使用してサーバーを実行する場合は、 io.ktor.development システムプロパティを使用できます。

開発モードが有効になると、Ktorは作業ディレクトリからの出力ファイルを自動的に監視します。 必要に応じて、監視パスを指定することで、監視対象のフォルダーを絞り込むことができます。

監視パスを構成する

開発モードを有効にすると、Ktorは作業ディレクトリからの出力ファイルの監視を開始します。 例えば、Gradleでビルドされた ktor-sample プロジェクトの場合、以下のフォルダーが監視されます。

監視パスを使用すると、監視対象のフォルダーのセットを絞り込むことができます。 これを行うには、監視パスの一部を指定します。 例えば、ktor-sample/build/classes サブフォルダーの変更を監視するには、監視パスとして classes を渡します。 サーバーの実行方法に応じて、以下の方法で監視パスを指定できます。

  • application.conf または application.yaml ファイルで、watch オプションを指定します。

    yaml

    次のように複数の監視パスを指定することもできます。

    yaml

    完全な例はこちらで確認できます: autoreload-engine-main

  • embeddedServer を使用している場合は、watchPaths パラメーターとして監視パスを渡します。

    Kotlin

    完全な例については、以下を参照してください。 autoreload-embedded-server

変更時に再コンパイルする

オートリロードは出力ファイルの変更を検出するため、プロジェクトをリビルドする必要があります。 これは IntelliJ IDEA で手動で行うか、Gradle の -t コマンドラインオプションを使用して継続的ビルド実行を有効にすることで行えます。

  • IntelliJ IDEA でプロジェクトを手動でリビルドするには、メインメニューから ビルド | プロジェクトのビルド を選択します。

  • Gradle を使用して自動的にプロジェクトをリビルドするには、ターミナルで -t オプションを付けて build タスクを実行します。

    Bash

    TIP

    プロジェクトのリロード時にテストの実行をスキップするには、build タスクに -x オプションを渡すことができます。

    Bash