Самый простой способ в Gradle получить путь к jar-файлу в кеше зависимостей Gradle

Я использую Gradle для автоматизации задач Hadoop. При вызове Hadoop мне нужно иметь возможность передать ему путь к некоторым jar-файлам, от которых зависит мой код, чтобы Hadoop мог отправить эту зависимость на этапе сопоставления/уменьшения.

Я нашел кое-что, что работает, но это выглядит запутанно, и мне интересно, есть ли какая-то функция, которую я где-то упустил.

Это упрощенная версия моего скрипта gradle, который зависит от jar-файла solr 3.5.0 и задачи findSolrJar, которая перебирает все файлы jar в конфигурации, чтобы найти нужный. :

apply plugin: 'groovy'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.apache.solr:solr-solrj:3.5.0'
}

task findSolrJar() {
     println project.configurations.compile*.toURI().find { URI uri -> new File(uri).name == 'solr-solrj-3.5.0.jar'}
}

выполнение этого дает мне следующий вывод:

gradle findSolrJar                                                                                                                                                                                                                                                           
file:/Users/tnaleid/.gradle/caches/artifacts-8/filestore/org.apache.solr/solr-solrj/3.5.0/jar/74cd28347239b64fcfc8c67c540d7a7179c926de/solr-solrj-3.5.0.jar
:findSolrJar UP-TO-DATE

BUILD SUCCESSFUL

Total time: 2.248 secs

Есть ли лучший способ сделать это?

33
задан Ted Naleid 6 March 2012 в 04:33
поделиться