- JRebelを利用すると、アプリケーションの再起動なしで実行中のアプリケーションに加えた変更を即座に反映することができます(ホットリローディング)。まるでPHPのようにサクサク書けるッ!
- Scala開発者にはライセンスが$0で提供されます。Javaで利用する場合は購入してね☆彡
以下がインストールされているものとする。
- Scala 2.10
- SBT 0.12.2
- JRebel 5.2.2
- /opt/jrebelにインストール。zipを解凍して配置する。
- IntelliJ IDEA 12
- Scala Plugin
- JRebel Plugin
/opt/jrebel/bin/jrebel-config.sh
を起動する。- myRebelを選択し次を押し、ライセンスキーを入力する。
- ライセンスは https://my.jrebel.com/ から取得してください。
- Preference -> JRebel を選択する
- JRebel setup / Use embedded JRebel version のチェックを外し、
/opt/jrebel/jrebel.jar
を指定する。 - Activation を選択し、Register your licenseに ライセンスキーを指定する。
- JRebel setup / Use embedded JRebel version のチェックを外し、
- IntelliJ Projectを右クリックして、JRebel -> Generate rebel.xmlをリックする。
src/main/scala/rebel.xml
が生成される。基本的には変更は必要ない。Gitにはコミットしないようにする。
- コンソールから
sbt run
とした場合もホットリローディングさせたい場合は、JAVA_OPTS環境変数にjrebel.jarを指定する。export JAVA_OPTS="${JAVA_OPTS} -javaagent:/opt/jrebel/jrebel.jar"
sbt ~ compile
を実行し、ソースファイルが変更されたらすぐにコンパイルできるようにする。- IntelliJ IDEA から
Run with JRebel ...
/Debug with JRebel ...
を選んで実行する。 - IntelliJ IDEA 上からソースを変更すると即座にコンパイルされ、新しく作成されたクラスファイルがロードされるようになります。
sbt-resolverでも似たようなことができるらしいが、IDE側から利用できるか不明。誰か教えてください。