Play! 1.2.2+Scala でIntelliJの環境を以前作りましたが、
1.2.3の環境では、コントローラのエラーがでて、IntelliJからの実行が
できなくなりました。ターミナルで作業すれば問題ないんですが、
IDEから作業できたほうが開発するときには便利なので、調査してみました。
参考
原因
”play idealize”したときにmoduleのパス設定が正しく設定されないのが原因です。
Play! 1.2.2+Scala でIntelliJの環境を以前作りましたが、
1.2.3の環境では、コントローラのエラーがでて、IntelliJからの実行が
できなくなりました。ターミナルで作業すれば問題ないんですが、
IDEから作業できたほうが開発するときには便利なので、調査してみました。
”play idealize”したときにmoduleのパス設定が正しく設定されないのが原因です。
Play!+Scalaの公開先が欲しくなってきたので公開先を探してみました。
某Gから始まる検索エンジンで検索したところ、ちょうどPlay!に対応したサービスを発見した。
CloudBees RUN@cloud Documentationを見たところ、対応しているframeworkにPlay!があった!!
ちなみに、cloudbeesはstaxを買収したらしい。
コマンド一発でデプロイできるのは楽ですね。
Java PaaS の比較によると、CloudBeesはGAEと同じで、
アプリケーションが長時間非アクティブだと、リソースを確保するために JVM をメモリーからスワップアウトするらしいですね。
パフォーマンスが欲しければ、お金を払うようにすればいいみたい。
まぁ今のところ、そんなにパフォーマンスが必要なわけではないのでokですかね。
Scala勉強用にPlay! + Scalaでちょろっとした自分用のサービスを組み立てています。
ついでにCIの勉強もかねてJenkinsの環境を作成してみました。
継続的インテグレーション入門 開発プロセスを自動化する47の作法
今までまともにCIを使っていませんでしたが、きちんと設定しておくだけでビルド+TESTを
行なってくれるのは精神的に楽ですね。
今後アプリを作りながら少しづつ経験値を積んでいきたいところです。
Scalaの初心者なので、環境をつくるエントリーをまとめておく.
scala本家からダウンロードしてPATHを通す。
Play! Scalaモジュールは2.8.Xが対照なのでこちらを入れておくこと。
export SCALA_HOME=/path/to/scala export PATH=$SCALA_HOME/bin:$PATH
play! frameworkをダウンロードして、PATHを通しておく
export PLAY_HOME=/path/to/play export PATH=$PLAY_HOME:$PATH
$ play install scala $ play new helloworld --with scala <|| ** IntelliJ用にプロジェクトを変換 >|| $ play idealize helloworld/ ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.2.2, http://www.playframework.org ~ ~ OK, the application is ready for Intellij Idea ~ Use File/New Module/Import Existing module ~
一度実行して、ちゃんと画面が表示されることを確認しておく。
$ play run
画面に出たとおりに、IntellijでModuleとしてImportする。
IntelliJから新規にプロジェクトを作成して、Moduleを追加すること。
"Project"-"dependencies"に"PLAY_HOME/modules/testrunner/lib/play-testrunner.jar" を設定する。
これでRun/DebugするとTEST modeで起動され、http://localhost:9000/@test が表示できるようになり、テストを走らせることができます。
プロジェクト作成=>IDEで開発=>実行=>テスト実行まで行うことができました。
Play!flameworkは他のScala が使えるWAFに比べると日本語の情報が助かりました。
これでバリバリアプリが開発できそうです。
先人に感謝