Ktor + GradleでのAutoreload
先日、「Androidエンジニアが慣れている技術で作る維持費0円のサーバサイドアプリケーション」という記事でKtorとGradleを解説しました。この記事はその補足として、Autoreloadを解説します。
解決したい問題
./gradlew run
コマンドでローカルサーバーを立ち上げることが出来ます。しかし、ソースコードの変更を行った後、その内容をローカルサーバーに反映するときは CTRL + C
キーで終了してから、再度 ./gradlew run
コマンドを入力する必要があります。この手間を省力化したいです。
前提条件
先日の記事「Androidエンジニアが慣れている技術で作る維持費0円のサーバサイドアプリケーション」のGoogle App Engineにデプロイする以外の設定は完了している状態を前提に説明します。
動作確認
Ktorの1.4.0および1.4.3で動作確認しています。1.5.0では動作しませんでした。
KtorのAutoreloadを使う
Ktorの標準機能としてAutoreloadがあります。 公式解説
まず application.conf
ファイルに監視フォルダフルパスの一部分を設定します。
Kotlinソースコードは src/main/java
以下に置いたので、 main
を一部分として指定しました。
その一部分を含む.classファイルの更新がローカルサーバに反映されます。
ktor {
deployment {
port = 8080
// 追加
watch = [ main ]
}
// 略
}
.classファイルの更新が反映されるので、ビルドは必要です。
InteliJ IDEAの Build Project
ボタンを押すか
ローカルサーバが動作しているコンソールとは別のコンソールで
./gradlew installDist
コマンドを入力します。
ブラウザをリロードすると変更が反映されます。
ソースコードの変更をトリガーにビルドを実行する
さらにGradleのContinuous Buildを使うことでソースコードの変更をトリガーにビルドを実行できるため、 Build Project
ボタンクリックや ./gradlew installDist
コマンド入力の手間を省くことができます。
ローカルサーバが動作しているコンソールとは別のコンソールで
./gradlew installDist --continuous
または
./gradlew installDist -t
を実行します。
Author And Source
この問題について(Ktor + GradleでのAutoreload), 我々は、より多くの情報をここで見つけました https://qiita.com/tfandkusu/items/e810ae3bfa75c39e6b37著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .