[play1-deps] libフォルダについて

  playframework1

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 配下にフォルダが作られてモジュール資材が解凍する形で解決となります。

LEAVE A COMMENT