IntellijでScala + Lift を書く環境を整える
http://d.hatena.ne.jp/j5ik2o/20110121/1295586620
これを読んで
http://d.hatena.ne.jp/ishibashits/20110416/1302974848
ここの設定通りに。
まだ全然仕組みが分かってないが手順通りにやってみる。
Intellijのプラグインの設定はたぶん迷わない。
バージョンが違うと多少画面が違うがだいたい同じ。
プロジェクトの作成は
http://www.assembla.com/spaces/liftweb/wiki/Using_IntelliJ_IDEA_to_develop_Lift_applications
ここを見る。
mavenの方がさくっとプロジェクトを作れそうだったのでmavenでやった。
Intellijのメニューから作成した場合は maven + sbt がうまくいかなかった。
cd ~/IdeaProjects mvn archetype:generate \ -DarchetypeGroupId=net.liftweb \ -DarchetypeArtifactId=lift-archetype-basic_2.8.1 \ -DarchetypeVersion=2.2 \ -DarchetypeRepository=http://scala-tools.org/repo-releases \ -DremoteRepositories=http://scala-tools.org/repo-releases \ -DgroupId=com.example \ -DartifactId=liftdemo \ -Dversion=1.0 cd liftdemo ~/bin/sbt # sbtプロンプトで update、compileが成功すればOK
この後にプロジェクトをインポート。
project structure を見るとscalaが追加されてたはず。なければ追加で。
sbtはまだよく分からない。jarを取ってきて
#!/bin/bash java -Xmx512M -jar `dirname $0`/sbt-launch.jar "$@"
とファイルを書いただけ。
それからJRebelも取ってくる。
scala用ライセンスは
http://sales.zeroturnaround.com/
こっち。
メールで送られてくるのでjarと同じディレクトリに入れる。期限が決まっているので1年ぐらいしたらまた取得し直す感じ?
IntellijのJRebelプラグインも入れたらプロジェクトを右クリックして Generate rebel.xml する。
そこで
<classpath> <dir name="/home/user/IdeaProjects/liftdemo/target/classes"> </dir> </classpath>
のようになっているので
<classpath> <dir name="/home/user/IdeaProjects/liftdemo/target/scala_2.8.1/classes"> </dir> </classpath>
自分の環境に合わせて変更する。
正直まだsbtがコンパイル済みファイルをどこに書くか分かってない。classファイルをfind&grepして見つけた。
(追記:RunWebAppの設定で VM parametersに -Drebel.lift_plugin=true も必要?)
あとは
アプリの動作確認
intellijで[プロジェクト]/src/test/RunWebAppを選択して右クリックから「Run with JRebel "RunWeebApp.main"」を選択してください。
下部のコンソール画面にログが出力されます。問題なければ、http://localhost:8080で画面が表示されると思います。http://d.hatena.ne.jp/ishibashits/20110416/1302974848開発時の方法
私の場合は、コンソールでsbtで「~compile」を入力しておいて、ソースの修正があった場合に自動で再コンパイルするにしています。同時にintellijでは、RunWebAppでアプリケーションサーバを起動して自動で反映されるようにしています。この方法ならinttelijのデバッグにも対応することが出来ます。intellijでのデバッグが不要ならsbtの「~jetty-run」だけでも大丈夫です。
※sbtでの「~compile」などはファイルに変更があったらもう一度行うようにする設定です。
ここの通りに。
これで一通り終了。
あとはIDEAmacsを入れるなどする。…が、マークセットができない。
http://youtrack.jetbrains.net/issue/IDEA-69374?projectKey=IDEA
同じような人も居るみたい。
それからundo/redoのkeymapも変え方が分からない。一応emacsキーバインドにすると Ctrl+/ でundoできるようだがコメントアウトとかぶっている…。
エラーチェック周りの動作もよく分からんのでその辺はこれから。