libフォルダは置かれたjarを勝手に認識してくれる便利なフォルダですが、本来は play deps
コマンドで依存性解決した結果のライブラリの置き場所です。
そのため、playが置いた以外のjarファイルが見つかるとwarningが表示されます。うっかり、play deps
を--sync
オプション付きで実行してしまうと削除されてしまいます。
つまり、libフォルダへは手動でjarを配置せず、playが認知するようにdependencies.yml
にしっかり記述するのが本来あるべき姿ということです。
一般配布されていなかったり、maven非対応のjarを解決させる際には、ローカルレポジトリを定義し、そこにjarを置いた上で play deps
を実行。playにlibフォルダへ置かせる流れになります。
require:
- play 1.3.0
- localLibrary -> ibatis 2.3.0.677
- localLibrary2 -> ojdbc5_g latest.integration
- localLibrary3 -> mymodule 0.1
repositories:
# jar with revision
- local_library:
type: local
artifact: ${application.path}/local_repo/[module]-[revision].jar
contains:
- localLibrary -> *
# jar with no revsion
- local_library2:
type: local
artifact: ${application.path}/local_repo/[module].jar
contains:
- localLibrary2 -> *
# play module
- local_library3:
type: local
artifact: ${application.path}/local_repo/[module]-[revision].zip
contains:
- localLibrary3
プロジェクト内に、/local_repo
というフォルダを用意してローカルレポジトリとして定義して います。
リビジョン指定ありの場合を local_library
。
リビジョン指定無しの場合を local_library2
。自作のplay-moduleを local_library3
と定義。(もっと良い記述方法があるかもしれないです)
こうしておくと play deps
コマンドの実行により、local_repoフォルダから必要なjarファイル がlibファイルへコピーされプロジェクトに組み込まれるようになります。
自作のplayモジュール(zip形式)については、local_repo配下にビルド結果のzipファイ ルを置きます。すると、/modules
配下にフォルダが作られてモジュール資材が解凍する形で解決となります。