Play!もEclipseで行こう!
誤操作してしまって、せっかく書いた記事が消えてしまいました。(>_<)
気を取り直してもう一回書いてみる。
先日、Play! framework勉強会に行ってきました。
Play! frameworkはMVCフレームワークやORM(JPA/Hibernate)だけではなく、アプリケーションサーバ(JBoss Netty)やデータベース(H2)、更には依存性管理(Apache Ivy)やユニットテスト(JUnit/Selenium)、ビルド環境(Eclipse JDT)までも入ったオールインワン環境です。
ですので、Playの他にはテキストエディターさえあれば開発を開始することが出来ます。
PlayのムービーでもTextMateというエディターでサクサクと開発を進めています。
Macな人がPlayで開発する際にはTextMateがデファクトになりそうな感じですね。
ですが、私のPCはWindows7。で、VM上のUbuntuでPlayを動かしています。
Emacsやviで開発するという手もあるかもしれませんが、コード補完やデバッグのことを考えると、EclipseやNetBeans、IntelliJなどのIDEを使うのが良いと思います。
私的にはEclipseに慣れているので、とりあえずEclipseでPlayのチュートリアルYABEをやってみました。
play new yabe play eclipsify yabe
playのeclipsifyコマンドはEclipseのプロジェクトファイル等を作ってくれるコマンドです。
後は、Eclipseを起動してインポートするだけです。
これだけで、Playのソースコードを参照したり、Playのソース内をトレースしたり、オブジェクトの中身を参照したりすることが出来ます。
試しに、Applicationクラスの継承元のControllerにCtrlキーを押しながらマウスを近づけてみてください。
マウスポインターが手の形に変わって、Controllerにアンダーラインが表示されましたか?
クリックしてみましょう。
Controllerクラスが表示されたでしょうか?
ブレークポイントを張ったり、トレースも出来ます。
まずは、下記のコマンドでPlayを起動しておきます。
play run yabe
次に、Eclipseで[Run]-[Debug Configrations...]でダイアログを開き、[Remote Java Application]を選択し、左上の[+]ボタンを押下して、[Debug]ボタンを押下します。
適当なところ(例えばApplication.indexメソッド)にブレークポイントを張り、ブラウザをリフレッシュしてみましょう。
ブレークポイントで止まりましたか?Play framework内のソースコードもトレースできます。
あと、EclipseでPlayを触っていて気持ち悪かったことがあります。
モジュールです。
YABEでもCRUDとSecureモジュールを使用していますが、これが気持ち悪いです。
モジュールは
Play!はこのフォルダーがモジュールであることを知っているので、問題ないのですが、Eclipseがモジュールの位置を知りません。
ですので、Eclipse的にはビルドエラーになってしまいます。
この状態でも、デバッグ機能は正常に動きますので、何の問題もないのですが、やっぱり気持ち悪いですよねぇー。
下記のように各モジュールappフォルダーをソースリンクすることで解決することが出来ました。
1. パッケージエクスプローラでyabeを選択し、右クリックで[Build Path]-[Link Source...]メニューを選択します。
[Browse]ボタンで各モジュールのappフォルダーを指定し、[Foler name]に各モジュール名を入力して[Finish]ボタンを押下します。
これでビルドエラーがなくなりました。
めでたし。めでたし。
@ikeike443さんのコメントにより、解決しました。
再度play eclipsifyをして、再度Eclipseにインポートし直すだけで自動的にモジュールもビルドパスに追加されて、ビルドエラーがなくなりました。@ikeike443さんありがとうございます。m(__)m
あと、Play!にはPlayclipseというEclipseプラグインも同梱されています。
[Play!]メニューが追加されており、いくつかのツールボタンが追加されていればインストール成功。
ControllerやModel、Viewの雛形の作成やジャンプなどが出来るようです。
んー。。。でも、まぁ、まだちょっと微妙な感じですね。。。