seratch's weblog in Japanese

About Scala, Java and Ruby programming in Japaense. If you need English information, go to http://blog.seratch.net/

Typesafe Activator のテンプレートをつくってみた

Typesafe Activator は 0.1.1 が出たときに触ってみて 0.2.6 でいうところの Activator UI が今よりも未熟な状態で存在しているだけだったので「自分には関係ないかな」と思っていましたが 0.2.6 を触ってみたところ、その意図がわかったので少し興味を持ちました。

これはブラウザ IDE という側面もありますが、それよりも g8 を置き換えるものという意味の方が大きいですね。そして、入りやすさという意味では g8 よりも良いと思います。

ということで ScalikeJDBC のサンプルを試せる Activator テンプレートをつくってみました。

http://typesafe.com/activator/template/scalikejdbc-activator-template

https://github.com/seratch/hello-scalikejdbc

まず Typesafe Activator をダウンロードします。200MB と結構サイズ大きくて、これは依存ライブラリの jar も同梱されていてすぐ起動できるようにしているためなんですが、あの sbt 初回起動の遅さを考えると、まあしょうがないかなーという気がします。

http://typesafe.com/platform/getstarted

解凍して activator という起動スクリプトを実行します。Windows 用に activator.bat も用意されています。

 If you'd like to run activator in this directory, please:

 1. Run the UI with `activator ui`
 2. Create a project with `activator new`
 3. Move into a activator project directory and re-run activator.

実際にはこれから説明することは ./activator ui でブラウザ上から全て出来ますが(テンプレートを候補から選択 -> 出力ディレクトリを指定)あえてコマンドラインから利用方法を紹介します。

パラメータに new を指定して新しいプロジェクトをつくってみましょう。template name に scalikejdbc-activator-template を指定してください。

$ ./activator new

Enter an application name
> hello-scalikejdbc

The new application will be created in /Users/seratch/activator-0.2.6/hello-scalikejdbc

Enter a template name, or hit tab to see a list of possible templates
> scalikejdbc-activator-template
OK, application "hello-scalikejdbc" is being created using the "scalikejdbc-activator-template" template.

To run "hello-scalikejdbc" from the command-line, run:
/Users/seratch/activator-0.2.6/hello-scalikejdbc/activator run

To run the test for "hello-scalikejdbc" from the command-line, run:
/Users/seratch/activator-0.2.6/hello-scalikejdbc/activator test

To run the Activator UI for "hello-scalikejdbc" from the command-line, run:
/Users/seratch/activator-0.2.6/hello-scalikejdbc/activator ui

生成されたプロジェクトには activator の起動スクリプトと必要となる activator-launch-0.2.6.jar もコピーされています。

cd hello-scalikejdbc
./activator ui

Activator UI でプロジェクトを開くと http://localhost:8888/app で Activator が立ち上がり(初回は多少待たされます)、勝手にデフォルトブラウザで開くようになっています。以下のようなメニューが出ます。

f:id:seratch2:20130702003426p:plain

Code view & Open in IDE でソースコードを参照します。ファイルを編集して Save ボタンを押すとデフォルトで Recompile on file changes が on になっているので、自動的に再コンパイルされます。

f:id:seratch2:20130702003317p:plain

Play2 アプリの場合は Run のタブから起動することができます。Start/Stop/Restart ができます。今回のテンプレートは Play2 アプリになっているので Start をクリックしてから localhost:9000 にアクセスします。

f:id:seratch2:20130702003339p:plain

Test のタブからテストを全部流すことができます。sbt test と同じですね。Re-test on successful build がデフォルトで on になっているのでコンパイルが成功する度にテストが実行されます。結構マシンリソースを食うので、停止したい場合はチェックを外します。

ちなみに ScalikeJDBC はテストのサポートにも力を入れていてテストが終わったら自動でロールバックというのが標準で提供されているんですよ(どやっ)。

f:id:seratch2:20130702003335p:plain

以上、簡単な使い方の紹介でした。

実際つくってみての感想ですが、Activator テンプレートをつくるのはとても簡単なので、おそらく Mavenarchetype のように何百個も登録されると自分のものは埋もれていってしまいそうな気がしました。・・・と、そんな狭量なことを言っている前に、そもそもそれくらいのテンプレートが登録されるくらいコミュニティが盛り上がることの方が大事です。ということで、皆さん気軽につくってどんどん登録しましょう。

ちなみに activator.properties の name を適当につけない方がよいです。この項目が Activator 内のユニーク ID になり、URL にも利用されるので結構重要です。私のものは現状 GitHub のリポジトリ名と name がずれてしまっているんですが、今変えると混乱しそうなので、とりあえずそのままにしています。

ともあれ、実際これで開発するかどうかはまた別の問題ですが、ハンズオン勉強会などにはよいツールだと思います。

特に初心者向けの勉強会だと、まず色々セットアップして・・ってやっていたのが、最低限の準備さえ終わっていれば Activator だけである程度までは試せる、というのはよいことかなと思います。