Documentation

You are viewing the documentation for the 2.6.x development release. The latest stable release series is 2.4.x.

§ビルドシステム

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.6.x"

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

Next: sbt 設定について


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