http4サーバでホットリロードをしたい
使用環境 - OS:macOS Ventura 13.3.1 - sbt:1.8.0 - Scala:3.2.0 - http4s:0.23
sbt-resolver
を使用する
sbt-resolver
は以下の機能を備えている。(READMEから引用)
Starting and stopping your application in the background of your interactive SBT shell (in a forked JVM)
Triggered restart: automatically restart your application as soon as some of its sources have been changed
インタラクティブなSBTシェルのバックグラウンドでアプリケーションを起動・停止する(フォークされたJVMの中で)。
トリガーによる再起動:アプリケーションのソースの一部が変更されると、自動的に再起動されます。
導入も非常に簡単で、plugin.sbt
に以下を追記するだけ。
addSbtPlugin("io.spray" % "sbt-revolver" % "0.10.0")
sbt
を起動し~ reStart
コマンドを実行すると、ホットリロードができる。
他のコマンドはこちら。
reStart
--- は、フォークされたJVMでアプリケーションを開始します。オプションで指定された(JVM)引数は、reStartArgs/ reStart::javaOptions 設定(以下の「設定」セクションを参照)によって構成されたものに追加されます。アプリケーションがすでに実行されている場合、再起動する前にまず停止されます。 reStopはアプリケーションを停止します。これは、フォークされたJVMを単に強制終了させることで行われます。これは、シャットダウンフックが実行されないことを意味します(#20を参照)ので、注意してください。
reStatusは、アプリケーションの現在の実行状態に関する情報メッセージを表示します。
ただ、起動に5秒、画面に表示する文字をHello World !
からこんにちは !
に変更をホットリロードに14秒かかった。ちょっと使いづらい😢
もっと良い方法ないかな。。