Play モジュール
Play アプリケーションは、いくつかのアプリケーションモジュールから組み立てることができます。これにより、複数のアプリケーションをまたいでアプリケーションコンポーネントを再利用したり、大きなアプリケーションをいくつかの、より小さなアプリケーションに分割することが可能です。
モジュールとは?
モジュールは、ただの play アプリケーションです; しかし、アプリケーションモジュールのリソースがロードされる方法にいくつかの違いがあります:
- モジュールには
conf/application.conf
ファイルがありません。 - モジュールは
conf/routes
ファイルを持つことができますが、これらのルートは自動的にはロードされません。 - すべてのファイルは、まずメインのアプリケーションパスから検索され、その後、すべてのロードされたモジュールから検索されます。
- モジュールは module/lib ディレクトリ に JAR ファイルとしてパッケージされたピュア Java コードを含むことができます。
- モジュールはドキュメントを含むことができます。
- モジュールにおいて、すべてが任意です。
play new-module
コマンドでモジュールを作成することができます。
アプリケーションからモジュールをロードするには
モジュールは、アプリケーションの /modules
ディレクトリから自動的にロードされます。依存性管理システム を使って自動的にアプリケーションのモジュールを管理することができます。
モジュールからデフォルトルートをロードする
モジュールはデフォルト ルート
ファイルを提供することができます。特別なルート宣言を使用することで、メインアプリケーションの routes
ファイルにこれをロードすることができます:
# Import the default CRUD routes
GET /admin module:crud
すべての利用可能なモジュールからルートをロードすることもできます:
GET / module:*
モジュールにドキュメントを追加する
モジュールに documentation/manual/home.textile
ファイルを追加するだけで、モジュールにドキュメントを追加することができます。 ${play.path}/documentation/manual/
にある Play 自身のドキュメントと同じ Textile 文法を使ってください。
ドキュメントを持つひとつまたはそれ以上のモジュールを使って Play アプリケーションを実行している場合、 http://localhost:9000/@documentation にあるローカルの Play ドキュメントは、サイドバーの Installed Modules の下にそれらドキュメントへのリンクを含みます。
モジュールリポジトリの使用
モジュールリポジトリ は、コミュニティによって寄付されたすべてのモジュールを識別します。モジュールはいくつかのバージョンを持つことができます。使用するフレームワークのバージョンに必要なのはどのバージョンのモジュールなのか、モジュールのドキュメントをチェックする必要があります。
play list-modules
コマンドを使ってモジュールリポジトリを閲覧することもできます。
gbo-mac:‾ guillaume$ play list-modules
‾ _ _
‾ _ __ | | __ _ _ _| |
‾ | '_ ¥| |/ _' | || |_|
‾ | __/|_|¥____|¥__ (_)
‾ |_| |__/
‾
‾ play! 1.2, http://www.playframework.org
‾
‾ You can also browse this list online at http://www.playframework.org/modules
‾
‾ [bespin]
‾ Bespin online editor
‾ http://www.playframework.org/modules/bespin
‾ Versions: 1.0, 1.0.1
‾
‾ [cobertura]
‾ Cobertura
‾ http://www.playframework.org/modules/cobertura
‾ Versions: 1.0
...
play install {module}-{version}
コマンドを使ってローカルにモジュールをインストールすることができます。ローカルにモジュールをインストールすると、いくつかのアプリケーションがそれぞれ個別のコピーをインストールすることなく、このモジュールを使えるようになります。これは、アプリケーションの拡張というよりも、フレームワークを拡張するような大きなモジュールについて有効です。
例えば、フレームワークに Scala サポートをインストールする場合、以下を使います:
play install scala-head
規約では、 head
バージョンのモジュールは不安定です。バージョン情報を省略することで、デフォルトバージョンのモジュールをインストールすることもできます。例えば、以下のようにします:
play install scala
この方法の場合、モジュールはフレームワークをインストールした場所の /modules
ディレクトリにインストールされます。
--path
オプションを使ってこのインストールパスを変更することができます:
play install gwt --path=my-project
モジュールリポジトリに新しいモジュールを寄付する
前提条件
新しいモジュールを登録するには、次のものが必要です。
- Google グループに投稿するための Google アカウント。
- 開発者ログインするための OpenID (このために Google アカウントを使用することができます) 。
- 正規表現
[a-zA-Z]+
にマッチするモジュール名。 - モジュールは ドキュメント を含む必要があります。
- 例えば GitHub, Google Code または Launchpad プロジェクトのような、ソースコードが利用できてバグを報告する方法を備えたモジュールのホームページ。
モジュールの登録
Google アカウントを OpenID として使用するためには、以下のようにしてその完全な URL を見つける必要があります。
- http://www.playframework.org/modules の Developer login の下に
https://www.google.com/accounts/o8/id
を入力し、 Login ボタンをクリックします。 - Google アカウントにログインします。
- 例えば
https://www.google.com/accounts/o8/id?id=BItOawk7q69CFhRarQIo
のように、 Developer login の下の完全な Google OpenID URL をメモします。
play-framework Google Group にモジュール登録リクエストを投稿します。例えば:
Subject: Module registration request: {module name}
Module name:
jqueryui
Display name:
jQuery UI
Description:
Working examples of jQuery UI widgets, integrated with a Play application.
Project home page:
https://github.com/hilton/jqueryui-module
OpenID:
https://www.google.com/accounts/o8/id?id=BItOawk7q69CFhRarQIo
モジュールが登録されたら、リリースを公開することができます。
モジュールのリリース
モジュールをリリースするためには:
- 例えば
self: play -> jqueryui 1.0
のように、conf/dependency.yml
の最初の行にモジュールのバージョン番号を設定します play build-module
コマンドでモジュールをビルドします- Developer login の下から http://www.playframework.org/modules にログインします
- http://www.playframework.org/modules/developers の Your modules の下にあるリンクからあなたのモジュールのページを閲覧します
- Manage module releases の下にあるフォームを使って、あなたのモジュールの
dist/
ディレクトリから生成した ZIP ファイルをアップロードします
もちろん、ヘルプを提供したり情報を共有するために公式の Google Group を使用することができます。
考察を続けます
依存性管理 を使ってモジュールを効率的に管理する方法を学びましょう。