home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

Groovy/Gradle/Get Fullpath For Dependencies Jar Files

Groovy/Gradle/Get Fullpath For Dependencies Jar Files

Groovy / Gradle / Get Fullpath For Dependencies Jar Files
id: 1185 所有者: msakamoto-sf    作成日: 2013-04-13 15:09:26
カテゴリ: Groovy 

依存jarファイルの、ファイルシステム上のフルパスの取得方法についてメモ。

Gradleでは、依存性は階層構造で管理されます。

Project ->
  ConfigurationContainer ->
    Configuration : これが最終的に依存性を集約します。

"ConfigurationContainer"は何かというと、依存性のセットを名前をつけて管理してます。

dependencies {
  compile ...
  runtime ...
  testCompile ...
}

のように構成した場合、"compile", "runtime", "testCompile"というキーに対してそれぞれのConfigurationインスタンスをマッピングします。
ConfigurationContainer自体はProject.getConfigurations()または単純に"configurations"プロパティからアクセスできます。

これにより、例えば "compile" の依存性のセットに対して何か操作したい場合は、以下のように簡単に依存性のセット(Configuration)にアクセス出来ます。

task foo {
  configurations.compile.(Configurationのプロパティやメソッド)
}

依存するJarファイルのフルパスを取得する手っ取り早い方法は、Configurationクラスのfiles()メソッドを使います。

apply plugin: 'java'

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    compile 'org.apache.commons:commons-lang3:3.1'
    runtime 'ch.qos.logback:logback-classic:1.0.9'
    testCompile 'junit:junit:4.11'
}

task depFiles {
    configurations.each {
        println "---------------------------------------------"
        Configuration theConfig = it
        println theConfig.name
        println ">>> dependencies"
        theConfig.dependencies.each {
            println it.group + ":" + it.name + ":" + it.version
        }
        println ">>> resolved files"
        theConfig.files.each {
            // files()メソッドに何も渡さないと、すべてのjarファイルのフルパス
            // がjava.io.Fileオブジェクトで取得される。
            println it
        }
    }

    println "============================="
    // files()メソッドの引数に、booleanを返すclosureを指定し、
    // 特定のjarファイルのフルパスだけを取得する。
    configurations.compile.files({ dep -> dep.name == 'commons-lang3' }).each { file ->
        println file
    }
}

依存性の管理方法や、アクセス方法などはGradleの公式ドキュメントを一読されるのをおすすめします。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-04-13 15:31:06
md5:425fdfbdb6ec4ace665001940b0f6438
sha1:4e1b672477b734c146b8916a5996acb35ec5a287
コメント
コメントを投稿するにはログインして下さい。