Documentation

§ビルドシステム

Play のビルドシステムは、Scala および Java プロジェクトに統合された高性能なビルドツールである sbt を使います。ビルドツールに sbt を使うことは、このページで説明するいくつかの要件を play にもたらします。

§sbt を理解する

sbt の機能は、多くの古典的なビルドタスクのやり方と完全に異なっています。基本的に、sbt はタスクエンジンです。例えば compile タスクは、sourceDirectoriessourceGenerators に依存する sources タスクに依存すると言ったように、ビルドは実行する必要のあるタスクの依存ツリーとして表現されます。

sbt は典型的なビルドタスクをきめ細やかなタスクに分解し、ビルドツリーのあらゆる場所にあるすべてのタスクは、ビルド内にて任意に再定義することができます。これにより sbt はとてもパワフルになりますが、荒削りなビルドツール由来の考え方を切り替える必要もあります。

このドキュメントでは、Play における sbt を上位のレベルで記述します。プロジェクトにおいて sbt をより使い込んでいく際は、sbt チュートリアル を参照して sbt の組み合わせ方を理解することをお勧めします。このほかに、この一連のブログ も多くの人に利用されています。

§Play アプリケーションディレクトリ構成

多くのユーザが Play を始める際に使用する activator new コマンドは、以下のようなディレクトリ構造を生成します:

今後は この /build.sbt ファイルと /project ディレクトリが重要になります。

§/build.sbt ファイル

activator new foo コマンドを使うと、以下のようなビルド定義ファイル /build.sbt が生成されます:

name := "foo"

version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache
)

lazy val root = (project in file(".")).enablePlugins(PlayScala)

name 行は、 /、すなわち activator new コマンドに与えた引数より引き渡されるアプリケーションルートと同じ名前となる、アプリケーションの名前を定義します。

version 行は、ビルドするアーティファクト名の一部に使われる、アプリケーションのバージョンを提供します。

libraryDependencies 行はアプリケーションが依存するライブラリを指定します。詳しくは後述します。

Java または Scala 向けに、PlayJava または PlayScala プラグインを sbt に個別に設定しなければなりません。

§ビルドに scala を使う

Activator は、プロジェクトの project フォルダ内にある scala ファイルからビルド要件を組み立てることもできます。おすすめは build.sbt を使うことですが、ことによると古いプロジェクトから移行する場合などに、scala ディレクトリが必要になるときがあります。その場合は、いくつかの便利なインポートがあります:

import sbt._
import Keys._
import play.Play.autoImport._
import PlayKeys._

autoImport と書かれた行は、sbt プラグインに宣言されたプロパティを自動的にインポートする手段を是正したものです。これらと併せて、例えば sbt-web プラグインをインポートすることもできます:

import com.typesafe.sbt.less.autoImport._
import LessKeys._

§/project ディレクトリ

ビルドに関するものはすべてアプリケーションディレクトリ配下の /project ディレクトリに保持されます。これは sbt の要件です。このディレクトリには次の二つのファイルがあります:

§sbt 用の Play プラグイン (/project/plugins.sbt)

Play コンソールや、ライブリロードのような開発系の機能は sbt プラグインとして実装されています。これらは /project/plugins.sbt ファイルに登録されています:

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % playVersion) // where version is the current Play version, i.e. "2.4.x"

play のバージョンを変更する際は、手動で build.propertiesplugins.sbt を更新しなければならないことに注意してください。

Next: sbt 設定について


このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。