§スタンドアロンで実行可能なアプリケーションのビルド
§dist タスクを使う
Play 2.1 アプリケーションをデプロイする最も簡単な方法は、(git などを使って) ソースコードをサーバに保存して、 play start
もしくは play stage
のどちらかでアプリケーションを起動することです。
その他に、Play のフレームワークに依存しないアプリケーションのバイナリをビルドしたいこともあるでしょう。その場合は、 dist
タスクが利用できます。
Play コンソールで、 dist
を入力してみましょう。
[My first application] $ dist
conf.file
という特別なシステムプロパティにより、外部の application.conf を使ってアプリケーションをビルドすることができます。仮に本番環境向けのapplication.conf
がホームディレクトリ以下に保存されているとすると、以下のコマンドでデフォルト以外のapplication.conf
を組み込んだ play アプリケーションのバイナリをビルドすることができます。$ play -Dconfig.file=/home/peter/prod/application.conf dist
タスクが完了すると、target
フォルダに、アプリケーションを実行するための必要な全ての JAR ファイルを含む ZIP ファイルが生成されます。この ZIP ファイルの中身は次のような構成になっています。
my-first-application-1.0
└ lib
└ *.jar
└ start
アプリケーションを実行するには start
スクリプトを実行します。
Play コンソールを使う代わりに、 OS のシェルプロンプトから play dist
を直接起動しても同じ事ができます。
$ play dist
§Maven (または Ivy) レポジトリへパブリッシュする
アプリケーションを Maven レポジトリへパブリッシュすることもできます。パブリッシュされるのは、アプリケーションの JAR と、POM ファイルの二つです。
パブリッシュしたい場合は、そのための設定を project/Build.scala
に記述する必要があります。
val main = PlayProject(appName, appVersion, appDependencies).settings(
publishTo := Some(
"My resolver" at "http://mycompany.com/repo"
),
credentials += Credentials(
"Repo", "http://mycompany.com/repo", "admin", "admin123"
)
)
設定を記述したら、Play コンソールで publish
タスクを実行します。
[My first application] $ publish
上記の設定中にも登場している resolver や credentials の詳細な定義方法については、sbt のドキュメントを参照してください。