Documentation

§Play アプリケーションの構造

§Play アプリケーションの構成

Play アプリケーションの構成は、できるだけシンプルさを重視して標準化されています。正常にコンパイルされた後の Play アプリケーションの構成は、以下のようになっています:

app                       アプリケーションソース
  assets                 コンパイルされたアセットソース
     stylesheets         通常は LESS CSS ソース
     javascripts         通常は CoffeeScript ソース
  controllers            アプリケーションコントローラ
  models                 アプリケーションビジネス層
  views                  テンプレート
build.sbt                 アプリケーションビルドスクリプト
conf                      設定ファイル、および (クラスパス上の) その他のコンパイルされないリソース
  application.conf       メイン設定ファイル
  routes                 ルート定義
dist                      プロジェクト成果物に含める任意のファイル
public                    公開アセット
  stylesheets            CSS ファイル
  javascripts            Javascript ファイル
  images                 画像ファイル
project                   sbt 設定ファイル群
  build.properties       sbt プロジェクトの目印
  plugins.sbt            Play 自身の定義を含む sbt プラグイン
lib                       管理されていない依存ライブラリ
logs                      ログフォルダ
  application.log        デフォルトログファイル
target                    生成物
  resolution-cache       依存性に関する情報
  scala-2.10
     api                 生成された API ドキュメント
     classes             コンパイルされたクラスファイル
     routes              routes から生成されたソース
     twirl               テンプレートから生成されたソース
  universal              アプリケーションパッケーs時
  web                    コンパイルされた web アセット
test                      単体、および機能テスト用のソースフォルダ

§app/ ディレクトリ

app ディレクトリには、実行可能な全てのコードが含まれます。Java や Scala のコードや、テンプレート、LESS や CoffeeScript のような、別の言語へコンパイルされるアセットのソースファイルなど、全てです。

app ディレクトリには、それぞれが MVC アーキテクチャパターンと対応する 3 つのパッケージがあります:

もちろん、app/utils のような独自のパッケージの作成しても問題ありません。

Play では、controllers, models, views というパッケージ名はゆるい規約で、必要であれば (例えば、全てのパッケージに com.yourcompany という接頭辞をつけると言ったように) 変更することができます。

この 3 つ以外にも、必須ではありませんが app/assets というディレクトリがあります。ここには、LESSCoffeeScript sources のような、別の言語へコンパイルされるアセットのソースファイルを置きます。

§public/ ディレクトリ

public/ ディレクトリに保存されたリソースはいわゆる静的コンテンツとなり、Web ブラウザへそのまま送信されます。

このディレクトリには、画像ファイル、CSS スタイルシート、JavaScript ファイル用の 3 つのサブディレクトリがあります。全ての Play アプリケーションが似たような構成になるように、静的コンテンツはこれらのディレクトリに入れておくと良いでしょう。

ちなみに、アプリケーションを新規作成した状態では、public/ ディレクトリが /assets という URL パスに対応付けされています。これはいつでも変更できます。また、静的コンテンツを複数のディレクトリに分散させることもできます。

§conf/ ディレクトリ

conf ディレクトリにはアプリケーションの設定ファイルを入れます。主な設定ファイルは次の二つです。

もし、アプリケーション独自の設定を追加したい場合は、application.conf に設定項目を追加すると良いでしょう。

また、ライブラリ独自の設定ファイルは、conf ディレクトリに配置すると良いでしょう。

§lib/ ディレクトリ

lib ディレクトリは必須ではありませんが、ビルドシステムの管理外におきたい jar ファイルなど、全ての管理されないライブラリ依存性を含みます。jar ファイルこのディレクトリに配置しておくだけで、アプリケーションのクラスパスに追加されます。

§build.sbt ファイル

通常、プロジェクトの主要なビルド定義はプロジェクトルートにある build.sbt に書かれます。project/ ディレクトリにある .scala も、プロジェクトのビルドを定義するために使うことができます。

§project/ ディレクトリ

project ディレクトリは、sbt のビルド定義を含みます。

§target/ ディレクトリ

target/ ディレクトリには、Play のビルドシステムによって生成された全てのファイルが入ります。何が生成されるのか覚えておくと良いでしょう。

§よく使う .gitignore ファイル

Play によって生成されたディレクトリは、バージョン管理システムに無視させるべきでしょう。Play アプリケーションで典型的な .gitignore ファイルの内容を以下に示します。

logs
project/project
project/target
target
tmp
dist
.cache

§デフォルトの SBT 構成

SBT および Maven で使われるデフォルトの構成を使うオプションもあります。この構成は実験的で、問題を含むかもしれない点に注意してください。この構成を使うには、disablePlugins(PlayLayoutPlugin) を使います。これで Play が以下に示すデフォルトの SBT 構成を上書きしないようになります:

build.sbt                   アプリケーションビルドスクリプト
src                         アプリケーションソース
  main                     コンパイルされたアセットソース
     java                  Java ソース
        controllers        Java コントローラ
        models             Java ビジネス層
     scala                 Scala ソース
        controllers        Scala コントローラ
        models             Scala ビジネス層
     resources             設定ファイル、および (クラスパス上の) その他のコンパイルされないリソース
        application.conf   メイン設定ファイル
        routes             ルート定義
     twirl                 テンプレート
     assets                コンパイルされたアセットソース
        css                通常は LESS CSS ソース
        js                 通常は CoffeeScript ソース
     public                公開アセット
        css                CSS ファイル
        js                 Javascript ファイル
        images             画像ファイル
  test                     単体または機能テスト
     java                  単体、および機能テスト用の Java ソースフォルダ
     scala                 単体、および機能テスト用の Scala ソースフォルダ
     resources             単体、および機能テスト用のリソースフォルダ
  universal                プロジェクト成果物に含める任意のファイル
project                     sbt 設定ファイル群
  build.properties         sbt プロジェクトの目印
  plugins.sbt              Play 自身の定義を含む sbt プラグイン
lib                         管理されていない依存ライブラリ
logs                        ログフォルダ
  application.log          デフォルトログファイル
target                      生成物
  scala-2.10.0            
     cache              
     classes               コンパイルされたクラスファイル
     classes_managed       管理されたクラスファイル (テンプレート, ...)
     resource_managed      管理されたリソース (less, ...)
     src_managed           生成されたソース (テンプレート, ...)

Next: Play チュートリアル


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