Kotlin Ktor Auto Reload ホットリロード 設定

今回は、Kotlin KtorでAuto Reload(ホットリロード)をできるようにする設定メモとなります。

開発中でソースが変更された際に、サーバーが自動でリロードしてくれるようになります。

以下の内容を個人的に少し調整した内容となります。

https://ktor.io/docs/auto-reload.html

 

尚、Application.confもしくはApplication.yamlを利用可能な前提での内容となります。

Application.ktのmain関数で、embeddedServercommandLineEnvironment を利用していれば問題ないかと思います。

fun main(args: Array) {
    embeddedServer(Netty, commandLineEnvironment(args)).start(wait = true)
}

Kotlin Ktor Application.conf Application.yaml 設定

 

Application.conf 修正

Applicaiton.confに以下を追加します。

ktor {
    deployment {
        development = true
        watch = [ classes, resources ]
    }
    application {
        modules = [ com.example.ApplicationKt.module ]
    }
}

watchには、変更を監視する場所を指定します。

Ktor Application.conf Auto Reload

この状態でデバッグ実行すると、ログにwatchで指定したディレクトリが監視されていることが出力されます。

このログが出ていると、指定したディレクトリの内容が変更されてビルドされると、

自動的にサービスに反映されるようになります。

ただ、ビルド自体は手動もしくは自動で別途行う必要があります。

Ktor Auto Reload Debug Log


自動ビルド Gradle コマンド

IntelliJの機能でも自動ビルドがあったかと思います。

しかし、私の環境では、自動ビルドが効かない時があった経験と、

必ずいつでも自動ビルドして欲しいわけではないので、

よくGradleのコマンドで実行しています。

プロジェクトのルートディレクトリで、以下のコマンドを実行します。

./gradlewの部分は、実行場所に応じて調整ください。

./gradlew -t build

Ktor Gradle Auto Build


今回のメモは以上となります。

すこし準備が必要ではありますが、

以上の内容で自動反映されると思います。

都度、サービスの再起動が面倒な方はお試しください。

都内でエンジニアをやっています。 2017年に脱サラ(法人設立)しました。 仕事で調べたことや、気になったことをメモしています。
投稿を作成しました 163

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る