#navi_header|Groovy| 依存jarファイルの、ファイルシステム上のフルパスの取得方法についてメモ。 Gradleでは、依存性は階層構造で管理されます。 Project -> ConfigurationContainer -> Configuration : これが最終的に依存性を集約します。 "ConfigurationContainer"は何かというと、依存性のセットを名前をつけて管理してます。 dependencies { compile ... runtime ... testCompile ... } のように構成した場合、"compile", "runtime", "testCompile"というキーに対してそれぞれのConfigurationインスタンスをマッピングします。 ConfigurationContainer自体はProject.getConfigurations()または単純に"configurations"プロパティからアクセスできます。 - ConfigurationContainer - Gradle DSL Version 1.5 -- http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ConfigurationContainer.html これにより、例えば "compile" の依存性のセットに対して何か操作したい場合は、以下のように簡単に依存性のセット(Configuration)にアクセス出来ます。 task foo { configurations.compile.(Configurationのプロパティやメソッド) } 依存するJarファイルのフルパスを取得する手っ取り早い方法は、Configurationクラスのfiles()メソッドを使います。 #pre||> 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の公式ドキュメントを一読されるのをおすすめします。 - Chapter 8. Dependency Management Basics -- http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - ConfigurationContainer - Gradle DSL Version 1.5 -- http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ConfigurationContainer.html - Configuration - Gradle DSL Version 1.5 -- http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.Configuration.html - DependencyHandler - Gradle DSL Version 1.5 -- http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.dsl.DependencyHandler.html - Chapter 48. Dependency Management -- http://www.gradle.org/docs/current/userguide/dependency_management.html #navi_footer|Groovy|