8t's BBR

よくつまったあれこれをメモ

Play frameworkを使ってみた ①

遅くなったが新年初エントリー。就活で書く暇がなかった。


という訳で、今回はPlayというフレームワークを使ってみました。
軽く調べてみると以前使ったことのあるSpringの次くらいにトレンドな感じの印象。


使ってみた感想として、確かに慣れれば開発がはかどりそうだが、やはり初心者が触り始めるには難しい点があります。

  • Documentationが英語
  • Documentationに書かれていることがすべて正しいとは限らない
  • うまくいかない時の対処法はググるしかない

これらは割と何に対しても言えることかもしれないが、特に2番目の問題はきつい。
情報自体が間違っているという訳ではないです。
ただ昔のバージョンでの書き方のまま更新されておらず、いざ真似すると非推奨と怒られたり、うまく動作しなかったりでもう・・・。



そこで今回は複数回にわたって、Playフレームワークの使い方を簡単に紹介します。

第1回ではIntellijで開発を始めるまでを説明しようかなと思います。

ダウンロード

まずはダウンロードから。以下のページからできます。
https://www.playframework.com/download

いろいろとダウンロードできるものがありますが、とりあえずPlayフレームワークを使ってみたいという人は画面中腹あたりのPlay with Activatorという項目のActivator 1.3.12 including Play 2.5.12というものを選択してください。ダウンロードが始まります。

f:id:ykng0:20170123222435p:plain


これを動かすにはJDK8が必要だが、Playフレームワークを使おうと思っている方ならまず入っていると思います。

「え・・・・」って方は以下で今すぐJavaをインストールしておきましょう。PATHに追加しておくのも忘れずに。
Java SE Development Kit 8 - Downloads
Javaのインストール方法、およびPATHへの追加の仕方は調べればいくらでも出てきます。


ダウンロード以降はこちらが非常に参考になります。
Installing - 2.4.x

クイックスタートの項目の最初に最新の Typesafe Activator を ダウンロードする とありますが、これは先ほどダウンロードしたActivatorなので気にしない。
あとは手順通りにやれば、とりあえずうまくいくはず・・。

activatorコマンドがないという方はbinディレクトリにあるはずなのでそれを指定してください。
また、そこにPATHを通しておくと便利です。


Playのプロジェクト作成法

Playのプロジェクトの作り方は細かく説明すると大変なので、とりあえず簡単な作り方を。

まずはプロジェクトを作りたいディレクトリまで移動してから、以下のコマンドを順に実行します。

// [project-name]にはお好きなプロジェクト名を指定してください。
$ activator new [project-name] play-java
$ cd [project-name]
$ activator run

プロジェクトをactivator newで生成後、activator runせずにIntellijにインポートしてからRunしようとすると
view.htmlなどのシンボルが見つかりませんとのエラーが出ることがあります。
ので、こうなってもなってなくても3の手順は一回踏むべきかもしれない。(その後に Ctrl + D で終了しても大丈夫)
ちなみに、javaじゃなくてscalaで開発したいって方は、最初のnewでplay−javaではなくてplay-scalaと指定してください。


Intellijへのインポート手順

Playのアプリケーションはeclipseなどでも開発できますが、この記事ではIntellijでのインポート手順を説明します。

Intellij派の人もそうでない派の人もこちらを参考に進めてください。
https://www.playframework.com/documentation/ja/2.4.x/IDE


Intellijで展開するにあたって、注意しなければいけないのが、先ほどのページにも書かれているが、Play2.4からはNew Projectから作成のは非推奨であるという部分。
これは先ほどのactivator newからプロジェクトを作成する方法をせずに、Intellijで直接作成するというなんとも便利そうな話であるが、少なくとも2.5の私の環境では途中で失敗してできなかった。非推奨ではなくて、やめてくださいと書いてほしい。
大人しく、activator newからプロジェクトを作成してそれをIntellijにインポートするようにしましょう。


では、前置きが長くなりましたが、以下がIntellijへのインポート手順になります。

  1. Intellijのメイン画面で Import Projectを選択し、先ほど作成したプロジェクトを選択。
  2. Import project from external modelからSBTを選択。Nextを選択し、次もJDKが正しく設定されているのを確認したらFinishを選択。
  3. プロジェクトを展開できたら、Project Structure を開き、 Modulesの項目からroot の Dependencies の項目に scalasdk があることを確認。なければ追加。

f:id:ykng0:20170123230757p:plain

最後にRun Configurationの設定も行いましょう。+をクリックして SBT Tasks を選択。Tasks に run とだけ書いて apply して保存。これで Control + r で実行できます。

実行したらhttp://localhost:9000でアクセスして、動いていることを確認できます。


うまくいかない時

Intellijにインポートする時に、Import project from external modelからSBTを選択しようにも項目が出てこない場合があります。
これを解決するには、Intellijscalaプラグインをインストールする必要があります。
Intellijのメイン画面から、Configure->Pluginsを選択し、Install JetBrains plugins...を選択。
そしてscalaと検索し、出てきたプラグインをインストールすれば問題は解決されると思います。
f:id:ykng0:20170123231726p:plain
f:id:ykng0:20170123232030p:plain
f:id:ykng0:20170123232202p:plain





次回は、Playを使ったアプリケーション開発をする上で最低限必要なポイントを紹介したいと思います。
Play frameworkを使ってみた ② - 8t's BBR