本日のお裾分け

日々の開発で得た知識をシェアします。Java/Scala/Ruby/javascript

PlayFramework2.5.xでのプロジェクト作成

PlayFramework2.5.4でデータストアを作る機会があったので、まとめます。

環境
[OS]Mac OS X El Capitan 10.11.6
[Java]Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
[Scala]Scala code runner version 2.11.7
[sbt]sbt launcher version 0.13.7
[homebrew]homebrew 1.1.0-94-gfc3d586

  1. Typesafe Activatorをインストールする
  2. PlayFrameoworkのプロジェクトテンプレートを作成する
  3. とりあえず起動してみる

Typesafe Activatorをインストールする

PlayFrameworkはTypesafe社が開発しているのですが、
Typesafe社の製品のテンプレートを生成してくれるのがActivatorです。
Activatorは色々と便利な機能があったりするのですが、その辺はまた今度ということで。

まぁ、JavaでいうOracleNetbeansを使って色々なプロジェクトテンプレートを提供しているようなもんです。
今回はHomebrewを利用してインストールします。
Homebrew?なにそれ?という方は以下のリンクを読んでインストールしてください。
Homebrew macOS 用パッケージマネージャー

ターミナルを立ち上げて

$ brew install typesafe-activator
と入力すればOK。

==> Downloading http://downloads.typesafe.com/typesafe-activator/1.2.10/typesafe-activator-1.2.10.zip
######################################################################## 100.0%

こんな表示が出てactivatorがインストールされるかと思います。

PlayFrameoworkのプロジェクトテンプレートを作成する

ターミナルで
$ activator new
と入力するとactivatorが起動して、Play用のプロジェクトテンプレート作成モードになります。

※初回は依存関係をダウンロードするので少し時間がかかるかと思いますが、
初めだけなので気長に待ちましょう。

途中で

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

と聞かれるので、今回は6を入力。
Javaでプロジェクトを作りたい方は6を選んでください。

プロジェクト名を入力すれば、

Enter a name for your application (just press enter for 'play-scala')
> play-scala-crud

Scalaで書かれたPlayのプロジェクトテンプレートが作成されます。

OK, application "play-scala-crud" is being created using the "play-scala" template.

(略)

$ cd play-scala-crud/
$ find .
.
./.gitignore
./app
./app/controllers
./app/controllers/AsyncController.scala
./app/controllers/CountController.scala
./app/controllers/HomeController.scala
./app/filters
./app/filters/ExampleFilter.scala
./app/Filters.scala
./app/Module.scala
./app/services
./app/services/ApplicationTimer.scala
./app/services/Counter.scala
./app/views
./app/views/index.scala.html
./app/views/main.scala.html
./build.sbt
./conf
./conf/application.conf
./conf/logback.xml
./conf/routes
./LICENSE
./project
./project/build.properties
./project/plugins.sbt
./public
./public/images
./public/images/favicon.png
./public/javascripts
./public/javascripts/hello.js
./public/stylesheets
./public/stylesheets/main.css
./README
./test
./test/ApplicationSpec.scala
./test/IntegrationSpec.scala

ちなみに、ここまでの処理を1コマンドで実行する場合は、
$ activator new play-scala-crud play-scala
と書くこともできます。

activator new <プロジェクト名> <テンプレート名>

ですね。

とりあえず起動してみる

起動は
activator run
です。

$ cd play-scala-crud/
{PROJECT_HOME}$ activator run

PlayFrameworkはデフォルトでNettryが組み込まれており、
起動するとすぐにWEBサーバーが立ち上がってHTTP経由で動きを確認することができます。

$ curl http://localhost:9000/

こんな感じです。

ブラウザで上記アドレスにアクセスすれば、ドキュメントが見れるようになっているかと思います。

ひとまず今日はここまでで。

次回以降は、テスト作成/RDB接続/Json整形などをやっていきます。

Scala入門テキストの最新版

バージョンは少々古いですが、PlayFrameworkでアプリケーションを作る上で参考になる書籍。