【PlayFramework】Cloud9(ubuntu14.04)にPlayFramework2.5(typesafe activator)を導入する方法

PlayFrameworkとは?

 java/scalaのフレームワークで、「設定より規約」、ホットリロードなどの、開発者の生産性を向上させることに特化したMVCフレームワークです。

 クライアントサイド(テンプレートエンジン)はscalaですが、サーバーサイドは、java、scalaいずれでも使用できることもあり、比較的人気の高いフレームワークとなっています。

導入

Java8のインストール

 Cloud9にワークスペースをblankテンプレートで作成し、java8を導入します。

 Cloud9のubuntuバージョンは14.04ですが、このバージョンですとjava8がリポジトリに含まれておらず、通常のaptコマンドではインストールできませんので、以下のようにして対応するリポジトリを追加します。

$ sudo add-apt-repository ppa:webupd8team/java

途中、メッセージが出る場合は、そのままEnterを押してください。

Important!!! For now, you should continue to use Java 8 because Oracle Java 9 is available as an early access release (it should be released in 2016)! You should only use Oracle Java 9 if you explicitly need it, because it may contain bugs and it might not include the latest security patches! Also, some Java options were removed in JDK9, so you may encounter issues with various Java apps. More information and installation instructions (Ubuntu / Linux Mint / Debian): http://www.webupd8.org/2015/02/install-oracle-java-9-in-ubuntu-linux.html
 More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it  # そのままEnter

Java9はアーリーアクセス版なのでJava8を使ってくださいね。Java9にはバグが含まれているかもしれませんし、セキュリティパッチが最新でない場合がありますが、必要であれば自己責任で使ってください。また、jdk9でいくつかオプションが削除されているので、従来のシステムを動かすのに何か影響があるかもしれませんよ。

 といったことが書かれていますが、インストールするのはJava8なので問題ありません。

 次に、リポジトリを最新化してから、java8をインストールします。

$ sudo apt update
$ sudo apt install oracle-java8-installer

 途中でOracle Binary Code license termsへの承諾を求められます。承諾する場合はyesを入力し、Enterを押します。

Do you accept the Oracle Binary Code license terms? yes

 これでjava8の導入が完了しました。

scalaのインストール

 サーバーサイドの開発にjavaを使う場合でも、テンプレートエンジンにscalaが使われていますので、scalaを導入しておきましょう。

$ sudo apt install scala

PlayFramework(typesafe activator)のインストール

 こちらのダウンロードリンクのアドレスを控えます。「Or download the mini-package with no bundled dependencies (1M)」のmini-packageの方で構いません。

 8/26現在は、https://downloads.typesafe.com/typesafe-activator/1.3.10/typesafe-activator-1.3.10-minimal.zip

 続いて、パッケージをCloud9上にダウンロードします。ディレクトリは管理しやすければ特にどこでも構いません。

$ cd ~
$ wget http://downloads.typesafe.com/typesafe-activator/1.3.10/typesafe-activator-1.3.10-minimal.zip
$ unzip typesafe-activator-1.3.10-minimal.zip

 ディレクトリ名がactivator-1.3.10-minimalでは不便なので、activatorに名前を変更します。

$ mv activator-1.3.10-minimal activator

 次に、activatorにパスを通し、実行権限を付与します。

$ cd activator
$ export PATH=$PATH:~/activator
$ source ~/.bashrc
$ chmod a+x activator

 ここでインストールは完了ですが、minimalパッケージを使用しているため、依存関係のダウンロードを行う必要があります。

$ activator

 しばらく時間が掛かりますが、これでインストールは完了です。

プロジェクトの作成

 さっそく、プロジェクトを作成してみましょう。下記コマンドを入力します。

$ cd ~/workspace
$ activator new myapp

 ※myappの部分は任意の名前に読み替えてください。

 プロジェクトテンプレートを聞かれますので、任意の数字を入力します。今回は、「play-java」を選択します。

Browse the list of templates: http://typesafe.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)

> 5

 テンプレートが作成されたら早速動かしてみたいところですが、普通にサーバーを起動すると初回起動時に大規模なコンパイルが走ってしまいますので、事前にコンパイルしておきます。

$ cd myapp
$ activator compile

 sbtの依存関係を全てダウンロードするので、相当の時間が掛かります。(数十分~数時間)

 コンパイルが終わったら、サーバーを起動しましょう。Cloud9では、ポート番号が予め定められていますので、以下のコマンドで起動します。

$ activator "run $PORT"

 下記のログが出れば、サーバーが起動しています。

--- (Running the application, auto-reloading is enabled) ---

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

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

 Cloud9 IDE上のPreview -> Preview Running Applicationを押して、実際の画面を見てみましょう。

 「Your new application is ready.」と表示されれば、Play Frameworkの開発環境構築は完了です。

最後に

 Play Frameworkは、従来のフレームワークに比べ、大変高速かつ堅牢なシステムを構築することができます。

 小規模なアプリから大規模で複雑なアプリまで、非常にお勧めできるフレームワークとなっています。年々、勢いを増しており、Spring Frameworkと肩を並べるまでにもなりました。

 開発も活発に続けられており、最新技術も精力的に取り入れていることから、今後も有力なフレームワークのひとつとして期待が持てます。この機会に触れてみてはいかがでしょうか?

 当ブログでは、今後もPlay Frameworkに関する技術情報を連載する予定です。ご期待ください。