Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Scala 2.10 & SBT & JRebel & IntelliJ IDEAの環境構築方法

できること

  • 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に ライセンスキーを指定する。
  • 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 上からソースを変更すると即座にコンパイルされ、新しく作成されたクラスファイルがロードされるようになります。

参考リンク

@j5ik2o
Copy link
Author

j5ik2o commented May 28, 2013

sbt-resolverでも似たようなことができるらしいが、IDE側から利用できるか不明。誰か教えてください。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment