【Play Framework 2.4】Play Framework導入手順

f:id:mofmof721:20151227114038p:plain:w200
最近まで仕事でPlay Framework 2.4を使って開発を行っていましたが、日本語の情報が少ない! 公式のドキュメントも日本語版は2.3までしか出てない!
そのため、このブログに情報を残すことにしました。

今回はPlay Frameworkの導入手順についてです。
PlayではJavaScalaのいずれかを選択しますが、今回はJavaを使います。
公式のインストール手順解説ページはこちら
https://www.playframework.com/documentation/2.4.x/Installing

目次

jdkのインストール

まず、jdkをインストールし、パスを通します。
手順はこの記事を参照。
PATHの設定及び環境変数JAVA_HOMEの設定 - Javaダウンロードとインストール

この手順に加えて、Pathに

%JAVA_HOME%\bin\;
を追加します。

Play Frameworkのダウンロード

Play Frameworkの公式ページからtypesafe-activatorをダウンロードします。
ダウンロードページはこちら
https://www.playframework.com/download
今回はPlay 2.4.3のactivatorをダウンロードしました。

ダウンロードしたファイルを解凍し、パスを通します。
Pathには解凍したファイルのactivator.batがあるフォルダのパスを指定します。
f:id:mofmof721:20151227122936p:plain
今回はD:\play\activator-1.3.7-minimalに解凍したので、環境変数Pathに

D:\play\activator-1.3.7-minimal;
を追加します。

Play Frameworkのインストール

Pathを通したら、コマンドプロンプトでactivator.batがあるディレクトリに移動し、

activator help
コマンドを実行します。このコマンドが実行できたらパスが通っているのでOKです。

新規プロジェクト作成

新規Playプロジェクトを作成します。
コマンドプロンプトでPlayプロジェクトを作成するディレクトリに移動します。
今回はD:\repo内にプロジェクトを作成したいので、cd D:\repoを実行します。

ディレクトリを移動したら、プロジェクトを作成するコマンドを実行します。
今回は「Play-test」というプロジェクト名で作成するので、

activator new play-test play-java
を実行します。自分の作成するプロジェクトに合わせて「play-test」の箇所を書き換えてください。
「play-java」で、使用する言語を指定しています。Scalaを使用する場合は「play-scala」に書き換えてください。

Playアプリケーションの起動

プロジェクトの作成が完了したら、Play Frameworkを起動させて確認します。

まず、作成したプロジェクトのディレクトリに移動します。
今回はD:\repo\play-testにプロジェクトを作成したので、cd D:\repo\play-testを実行します。

プロジェクトのディレクトリに移動したら、Playアプリケーションを起動させます。

activator run
コマンドでサーバを起動させます。初回はコンパイルに時間がかかるので辛抱。
コマンドラインに「Server started,(以下略)」が出たらlocalhost:9000にアクセスします。
ここで「Welcome to Play」の画面が表示されたら成功です。
このあと設定ファイルを編集するので、ctrl + Dを押してサーバを停止させます。

Eclipseにプロジェクトをインポート

ここから2.4で変更された部分です。
Play Framework 2.4から、Eclipseで開発するにはプラグインを導入するよう変更されました。
公式の解説ページはこちら
https://www.playframework.com/documentation/2.4.x/IDE

プロジェクトのディレクトリ→project→plugins.sbtを開き、最後の行に以下の一文を追加します。

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")

コマンドプロンプトでプロジェクトのディレクトリに移動し、以下のコマンドを実行します。

activator eclipse
成功すると、プロジェクトのフォルダ内に「.project」ファイルが作成されます。

Eclipseを起動し、ファイル→インポート→一般→既存プロジェクトをワークスペースへを選択します。
f:id:mofmof721:20151227001414p:plain
プロジェクトを作成したディレクトリを指定し、完了を押します。
f:id:mofmof721:20151227125105p:plain

プロジェクトをインポートしたら、ビルドパスを修正します。
プロジェクト・エクスプローラーでPlayプロジェクトを選択して右クリック→ビルド・パス→ビルド・パスの構成を開きます。
「ソース」タブを開き、フォルダーの追加を選択します。
f:id:mofmof721:20151230170528p:plain
(プロジェクト)→target→scala-2.11→classesにチェックを入れてOKを押します。
f:id:mofmof721:20151230161905p:plain

viewのコンパイルエラーが消えない場合

ビルドパスを修正してリフレッシュした後でも、controllerでviewを呼び出している箇所のコンパイルエラーが消えない場合があります。
f:id:mofmof721:20151230193553p:plain

コンパイルエラーが消えない場合、まずbuild.sbtに以下のコードを追加します。

EclipseKeys.projectFlavor := EclipseProjectFlavor.Java           // Java project. Don't expect Scala IDE
EclipseKeys.createSrc := EclipseCreateSrc.ValueSet(EclipseCreateSrc.ManagedClasses, EclipseCreateSrc.ManagedResources)  // Use .class files instead of generated .scala files for views and routes 
EclipseKeys.preTasks := Seq(compile in Compile)                  // Compile the project before generating Eclipse files, so that .class files for views and routes are present

次に、インポートしたプロジェクトをEclipse上から削除します。
(ディスク上からプロジェクト・コンテンツを削除のチェックは入れないこと!)

Eclipseを終了し、

  1. activator clean
  2. activator update
  3. activator compile
  4. activator eclipse

の順にコマンドを実行します。
それが完了したら、上記の手順で再度Eclipseにプロジェクトをインポートします。
ビルドパスを修正してリフレッシュしたあと、コンパイルエラーが消えたら完了です。

参考

Play Framework 2.3についてはこちらのブログが詳しいです。
mpon.hatenablog.com

コンパイルエラーの解消方法はこちらを参考にしました。
stackoverflow.com


少し古いので2.4では使えない記述がありますが、全体的にわかりやすい技術本。