PlayFrameworkのインストールと始め方

スポンサーリンク

f:id:tasukujp:20160201204111p:plain

PlayFramework のインストールと始め方についてです。

PlayFrameworkとは

PlayFramework は Java と Scala のMVC型フルスタックフレームワークです。Java EEの常識を捨てたフレームワークとも言われており、Servlet や JSP を使いません。また、Tomcat 等のアプリケーションサーバを使う一般的なフレームワークとは少し違い、組み込みの Netty HTTPサーバが内蔵されています。そのため基本的には Play 起動 + Nginx or Apache の組み合わせで事足りますが、War にパッケージングしてデプロイすることもできます。

PlayFramework がバージョン1.xの頃は Java ベースで書かれていましたが、バージョン2.0からはフレームワークのコア自体が Scala で書き直されました。 ビルドやデプロイも Python によるスクリプトが使われていましたが、バージョン2.0からは SBT が使われています。

PlayFrameworkのインストール

PlayFramework について調べるとplayコマンドを使用する方法がよく出てきますが、これはもう無視していいです。バージョン2.3以降からactivatorに移行しました。 更に、Activator を調べると Typesafe Activator と表記されていることが多いですが、これも Typesafe は Lightbend に社名変更しているため、今後は Lightbend Activator となります。

 Lightbend Activator and sbt

現在、Homebrew で play を検索すると以下のように typesafe-activator をインストールして下さいとメッセージが表示されます。

$ brew search play
...
If you meant "play" precisely:

Play 2.3 replaces the play command with activator:
  brew install typesafe-activator

You can read more about this change at:
  https://www.playframework.com/documentation/2.3.x/Migration23
  https://www.playframework.com/documentation/2.3.x/Highlights23

Macにインストール

Mac には  Homebrew でインストールできます。

$ brew install typesafe-activator
$ activator -help

CentOSにインストール

CentOS には PlayFramework の公式サイト  Downloads または、Lightbend の公式サイト  Build Reactive Applications with Lightbend Activator からダウンロードします。軽い minimal 版で大丈夫です。

# wget https://downloads.typesafe.com/typesafe-activator/1.3.10/typesafe-activator-1.3.10-minimal.zip
# unzip typesafe-activator-1.3.10-minimal.zip
# ln -s activator-1.3.10-minimal  typesafe-activator
# chmod a+x typesafe-activator/activator
# echo 'export PATH="/usr/local/lib/typesafe-activator:$PATH"' >> /etc/profile.d/activator.sh
# source /etc/profile
# activator -help

アプリケーションの作成

activator がインストールされたらアプリケーションを作成します。activator newを実行すると対話形式で式プロジェクトの作成ができます。1回でプロジェクトを作成したい場合はactivator new sample-scala play-scalaで作成できます。

$ activator new

Fetching the latest list of templates...

Browse the list of templates: http://lightbend.com/activator/templates
Choose from these featured templates or enter a template name:
  1) minimal-akka-java-seed
  2) minimal-akka-scala-seed
  3) minimal-java
  4) minimal-scala
  5) play-java
  6) play-scala
(hit tab to see a list of all templates)
> 6
Enter a name for your application (just press enter for 'play-scala')
> sample-scala
OK, application "sample-scala" is being created using the "play-scala" template.

To run "sample-scala" from the command line, "cd sample-scala" then:
/Users/tasukujp/sample-scala/activator run

To run the test for "sample-scala" from the command line, "cd sample-scala" then:
/Users/tasukujp/sample-scala/activator test

To run the Activator UI for "sample-scala" from the command line, "cd sample-scala" then:
/Users/tasukujp/sample-scala/activator ui

プロジェクトの作成には様々なテンプレートを選択することができます。 Templates - Lightbend Activator 作成されたらactivatorコマンドで Play コンソールを起動してrunコマンドでサーバを起動しましょう。activator runだけでも大丈夫です。

$ cd sample-scala/
$ activator
[sample-scala] $ run
...
--- (Running the application, auto-reloading is enabled) ---

[info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console...)

起動後にhttp://localhost:9000にアクセスすると次のような画面が表示されます。

f:id:tasukujp:20160619183926p:plain

You're using Play 2.5.4と表示されているのが Play のバージョンです。project/plugins.sbtからも確認できます。

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.4")

ちなみにここまで activator ありきで説明してきましたが、activator は sbt のラッパーのようなものなので、特に必要でなければ使わなくてもいいです。例えばサーバを起動したい場合でもsbt runと実行すれば同じ結果が得られます。

 sbt Reference Manual — Lightbend Activator (sbt を含む) のインストール
 typesafe activatorを使わないplayframework2.3の始め方

ちょっと古いけど入門用の動画もありました。

vimeo.com

.gitignoreの設定

ファイルには最低限の以下内容を設定しておいたらいいでしょう。.ideaoutは IntelliJ を使用してる方の場合に必要です。

/logs/
/target/
/project/target
/project/project
/.idea/
/out/

 Playアプリケーションの構造 - 2.4.x (日本語)
 Playアプリケーションの構造 - 2.5.8 (英語)