Documentation

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

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

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

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

app                       アプリケーションのソースコード
  assets                 別の言語へコンパイルされるアセットのソースファイル
     stylesheets         通常は LESS CSS のソース
     javascripts         通常は CoffeeScript のソース
  controllers            アプリケーションのコントローラ
  models                 アプリケーションのビジネスロジック層
  views                  テンプレート
build.sbt                 アプリケーションビルドスクリプト
conf                      設定ファイル
  application.conf       メイン設定ファイル
  routes                 ルート定義
public                    公開アセット
  stylesheets            CSS ファイル
  javascripts            JavaScript ファイル
  images                 画像ファイル
project                   sbt 設定ファイル
  build.properties       sbt プロジェクトの基本ファイル
  plugins.sbt            Play 自身の定義を含む sbt プラグイン
lib                       管理されないライブラリ依存性
logs                      デフォルトのログ保存場所
  application.log        デフォルトのログファイル
target                    Play により生成されたファイル
  scala-2.10.0              
     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 では、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 ファイルこのディレクトリに配置しておくだけで、アプリケーションのクラスパスに追加されます。

§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

Next: Play コンソールを使う


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