PlayFramework 覚書1

PlayFrameworkのビルドタスクである「dist」。

通常、playアプリケーションを起動するには「start」 や 「stage」を用いるのですが、これらのコマンドはwindowsでは動作しません。

したがってwindowsで起動する場合は「dist」コマンドでビルドされた実行用batファイルを たたくことになります。

このdistコマンドですが、実行ファイルのほかに、プロジェクトに含まれるディレクトリなんかも一まとめにzipで固めてくれます。

くれますが、ここで問題が発生。

自分で追加した独自ディレクトリが、上記のzipに含まれてくれないんですね。

そこで、独自ディレクトリをdistの生成zipに含める方法を「日本Playframeworkユーザー会」のメーリングリストで聞いてきました。

以下が回答をまとめたものです。

-----------------------------------------------------------------------------

例:アプリケーションルート直下の/dataディレクトリを、distの生成zipに含める方法

※play 2.2.3で実施

1:build.sbtの末尾に一行だけ空行をあけて、以下の内容を記述する

mappings in Universal ++= {
  val dataDirectory = baseDirectory(_ / "data").value
  val dataDirectoryLen = dataDirectory.getCanonicalPath.length
  (dataDirectory ** "*").get.map { f: File =>
    f -> ("data/" + f.getCanonicalPath.substring(dataDirectoryLen))
  }
}

ここの「mappings in Universal」という値で、生成物の中身を設定しているらしいです。

私はsbtの書き方に詳しくないため何をやってるか理解していないポイントが多々あります(dataDirectory ** "*" のところとか)がそれは追々調べていこうかと。

2:「play reload」を実行し、build.sbtの設定を反映する

3:「play dist」でビルドする

-----------------------------------------------------------------------------

この記事が気に入ったらサポートをしてみませんか?