Documentation

You are viewing the documentation for the 2.0.8 release in the 2.0.x series of releases. The latest stable release series is 2.4.x.

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

§アプリケーションの標準的なファイル構成

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

app                      → アプリケーションのソースコード
 └ assets                → 別の言語へコンパイルされるアセットのソースファイル
    └ stylesheets        → 通常は LESS CSS のソース
    └ javascripts        → 通常は CoffeeScript のソース
 └ controllers           → アプリケーションのコントローラ
 └ models                → アプリケーションのビジネスロジック層
 └ views                 → テンプレート
conf                     → 設定ファイルおよびその他のコンパイルされていないリソース
 └ application.conf      → メイン設定ファイル
 └ routes                → ルート定義
public                   → 公開アセット
 └ stylesheets           → CSS ファイル
 └ javascripts           → JavaScript ファイル
 └ images                → 画像ファイル
project                  → sbt 設定ファイル
 └ build.properties      → sbt プロジェクトの基本ファイル
 └ Build.scala           → アプリケーションのビルドスクリプト
 └ plugins.sbt           → sbt プラグイン
lib                      → 管理されないライブラリ依存性
logs                     → デフォルトのログ保存場所
 └ application.log       → デフォルトのログファイル
target                   → Play により生成されたファイル
 └ scala-2.9.1              
    └ cache              
    └ classes            → コンパイルされたクラスファイル
    └ classes_managed    → Play 管理下のクラスファイル (テンプレートなど)
    └ resource_managed   → Play 管理下のリソース (less など)
    └ src_managed        → 生成された中間コード (テンプレートなど)
test                     → 単体テストや機能テストのソースフォルダ

§app/ ディレクトリ

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

app ディレクトリには 3 つのパッケージがあります。それぞれ、MVC パターンに登場する 3 つのコンポーネントに対応します。

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

Play 2.0では、controllersmodelsviews というパッケージ名はゆるい規約で、必要なら変更することができます(例えば、全てのパッケージに com.yourcompany というプレフィックスをつけるとか)。

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

§public/ ディレクトリ

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

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

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

§conf/ ディレクトリ

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

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

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

§lib/ ディレクトリ

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

§project/ ディレクトリ

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

§target/ ディレクトリ

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

§よく使う .gitignore ファイル

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

logs
project/project
project/target
target
tmp

Next: Play 2.0 コンソールを使う