ドキュメント

§ビルドシステムの概要

Playのビルドシステムは、ScalaおよびJavaプロジェクトの高性能統合ビルドであるsbtを使用します。ビルドツールとしてsbtを使用すると、Playに特定の要件が課せられます。このページでは、それらの要件について説明します。

§sbtについて

sbtは、多くの従来のビルドタスクとはかなり異なる方法で機能します。基本的に、sbtはタスクエンジンです。ビルドは、実行する必要があるタスクの依存関係ツリーとして表されます。たとえば、compileタスクはsourcesタスクに依存し、sourcesタスクはsourceDirectoriesタスクとsourceGeneratorsタスクに依存します。以下同様です。

sbtは、一般的なビルド実行を非常にきめ細かいタスクに分割します。ツリー内の任意の時点の任意のタスクは、ビルド内で任意に再定義できます。これにより、sbtは非常に強力になりますが、ビルドを非常に粗いタスクに分割する他のビルドツールから移行してきた場合は、考え方を変える必要があります。

ここでのドキュメントでは、Playでのsbtの使用方法について、非常に高いレベルで説明しています。プロジェクトでsbtを使い始めたら、sbtチュートリアルに従って、sbtがどのように連携するかを理解することをお勧めします。多くの人が役立つと感じているもう1つのリソースは、このブログ投稿シリーズです。

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

ほとんどの人は、Playのサンプルテンプレートのいずれか、または通常はこのようなディレクトリ構造を生成するsbt newコマンドを使用してPlayを使い始めます。

ここでは、/build.sbtファイルと/projectディレクトリについて説明します。

ヒント:Playアプリケーションの完全な構造については、こちらをご覧ください

§/build.sbtファイル

Playのsbtビルドファイルは、一般的に次のようになります。

name := "foo"

version := "1.0-SNAPSHOT"

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

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

name行はアプリケーションの名前を定義します。これは、アプリケーションのルートディレクトリ/の名前と同じになります。sbtでは、これはsbt newコマンドに指定した引数から派生します。

version行は、ビルドで生成されるアーティファクトの名前の一部として使用されるアプリケーションのバージョンを指定します。

libraryDependencies行は、アプリケーションが依存するライブラリを指定します。sbtドキュメントで依存関係の管理方法の詳細を確認できます

最後に、プロジェクトでsbtプラグインを有効にして、「Play化」する必要があります。これにより、twirlコンパイラやroutesコンパイラなどのPlay固有の機能のサポートが追加され、プロジェクトをビルドしてサーバーを実行するために必要なPlayライブラリが追加されます。通常、Playアプリケーションには、次のいずれかのPlayプラグインを使用する必要があります。
- PlayScala:標準のPlay Scalaプロジェクト
- PlayJavaフォームモジュールを備えた標準のPlay Javaプロジェクト
- PlayMinimalJava:フォームサポートのない最小限のPlay Javaプロジェクト

デフォルトでは、PlayJavaおよびPlayScalaプラグインは、特定の依存性注入ソリューションに依存しません。PlayのGuiceモジュールを使用する場合は、ライブラリの依存関係にguiceを追加します。

libraryDependencies += guice	

§ビルドにScalaを使用する

sbtは、プロジェクトのprojectフォルダー内のScalaファイルからビルド要件を構築することもできます。推奨される方法はbuild.sbtを使用することですが、Scalaを直接使用する必要がある場合があります。たとえば、古いプロジェクトを移行している場合などです。その場合に役立つインポートをいくつか紹介します。

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

autoImportを示す行は、sbtプラグインの自動的に宣言されたプロパティをインポートする正しい方法です。同様に、sbt-webプラグインをインポートする場合も同様です。

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

§/projectディレクトリ

プロジェクトのビルドに関連するすべてのものは、アプリケーションディレクトリの下の/projectディレクトリに保存されます。これは、sbtの要件です。そのディレクトリ内には、2つのファイルがあります。

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

Playコンソールとそのすべての開発機能(ライブリローディングなど)は、sbtプラグインを介して実装されます。これは、/project/plugins.sbtファイルに登録されています。

addSbtPlugin("org.playframework" % "sbt-plugin" % playVersion) // where version is the current Play version, i.e. "3.0.x"

:Playバージョンを変更する場合は、build.propertiesplugins.sbtを手動で更新する必要があります。

次:sbt設定について


このドキュメントに誤りを見つけましたか?このページのソースコードはこちらにあります。ドキュメントガイドラインを読んだ後、プルリクエストを送信してください。質問やアドバイスがあれば、コミュニティフォーラムにアクセスして、コミュニティとの会話を始めてください。