業務都合によりPlayFramworkを始めました。
ここまでの下勉強により、PlayFramworkのバージョンは2.4.6にすることにしました。
では、いよいよプロジェクトの新規作成に行ってみましょう。
Activatorのダウンロード
さて、PlayFrameworkの最初は「Activator」という管理ツールのダウンロードから始まります。ダウンロードサイトはこちら。
しかしですね~、ここで一つ、驚きの事実が発覚します。
これね、2.2、2.3、2.4、2.5と色々とリンク揃ってるでしょ?
2.3~2.5は全部同じなんですよ。
何でこんなことになっとるんじゃ!!
ともかく、「よっしゃ。俺は2.4.6を使うから2.4.6をダウンロードするぞ!!」なんて指定には何の意味も無いのでどれでもいいから目に入ったヤツを適当にダウンロードしたってください。
しかし、2.2以前は違います。
前回の記事でPlayはバージョン毎の差異が結構あって、特に2.2と2.3の間の隔たりが大きいと書きましたが、その一番の理由がコレです。
「Activatorは2.3以降だけ。2.2以前はActivatorではない」
2.2までは「Playコマンド」っていう旧体系のものなのですね。
なのでコマンドプロンプトで「Play ……」ってやっているサイトが出てきたら、それは古い情報です。
2.3以降はこのActivatorコマンドを使用します。
Activatorのインストール
インストールについて特記事項は無いのでサラリと済ませましょう。ダウンロードしたファイルを解凍して適当に置き、binフォルダに環境変数でパスを通せばOKです。
公式サイトにあるように済ませて下さい。
プロジェクト作成
Activatorにパスが通ったらプロジェクトの新規作成が可能になっています。
プロジェクトの作成は簡単です。
わざわざこのブログに記述せずとも公式サイトを見てそのままでOKかと思いますが、一応簡単にご紹介を。
プロジェクトを作成したい場所に移動し、コマンドプロンプトで「activator new」とすればプロジェクトの作成が始まります。
- 1) minimal-akka-java-seed
- 2) minimal-akka-scala-seed
- 3) minimal-java
- 4) minimal-scala
- 5) play-java
- 6) play-scala
「akka」というのはTypesafeが開発している並列分散フレームワークのakkaのことです。
並列分散?
つまり、サーバを1台、2台ではなく、ズラッと沢山並べて大規模処理を分散することを想定したフレームワークです。
今回は取り扱いませんが、こういうのもあるということだけ覚えておきましょう。
「minimal-java」は必要最小限のプロジェトの土台を作るだけのモード。
本当にちょろっとしか無いです。
詳しく知っている人ならともかく、初心者がここから構築していくのは無理じゃないかなぁ。
「play-java」はプロジェクトが一通り構築された状態から始められるコースです。
基本的にこの「play-java」を選ぶのが効率的スタートの起点となるでしょう。
なお、「scala」というのはJavaではなくscalaでプロジェクトを作るという意味です。
PlayFramworkはJavaでもslacaでもどちらでも使えるフレームワークですが、今回の連載はJavaで進行するので割愛。
では、play-javaを選んで次に進みます。
プロジェクト作成済み。しかし……
プロジェクト名は「play-sample」として、無事にプロジェクトが完成しました。
プロジェクト構成は一通り出来上がっており、「Hello World!」が表示可能状態です。
実に簡単ですね!!
しかし、ちょっと待って下さい。
「play-sample/project/plugins.sbt」を見ると以下のような記述があります。
- addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.3")
そう、PlayFrameworkのActivatorは「自動的に最新バージョンを取得する」という仕様なのです。
つまり、このプロジェクトは「2.4.6」ではなく「2.5.3」で作られてしまっているわけです。
ここが最初の山場です!!
PlayFrameworkは最新バージョンで作成するのは簡単ですが、古いバージョンを指定して作る機能が見当たりません。
私もネットで散々探したのですが、どうやら「activator new version=2.4.6」みたいに簡単にスパッと作るコマンドは無いみたいなのです。
終わりに
次回後編は本番。
「PlayFrameworkを古いバージョンで始めたい場合にどうすれば良いのか?」
情報がどうしても見つからないので私が体当たりで編み出した荒技をご紹介します。