Gradle превращает zip-архив в buildDir

У моего проекта есть удаленная зависимость, которая на самом деле представляет собой просто zip-архив определенных файлов, который нужно где-то распаковать, чтобы сборка могла генерировать новые исходные коды java из файлов. (Я ' м, говоря в общем, чтобы сосредоточиться на основной проблеме, а не на деталях)

Я не ожидал, что это будет так сложно, но мне не удалось заставить это работать. Вот что я создал:

Я определил новую конфигурацию:

configurations {
    newConf
}

Позже я определил единственную зависимость для этой конфигурации.Он превращается в zip-файл, который мне нужно взорвать:

dependencies {
    newConf "group:name:version@zip"
}

Пока что все это кажется мне правильным, хотя, если кто-то не согласен, я слушаю.

Наконец, мне нужно определить задачу, которая переносит zip в каталог, который затем становится входом для более поздней команды генерации кода.

task explodeModel {
    description = "unzip model into the specified 'modelSrc' directory"

    //input is a "files" collection (usually just one:  the zip)
    //output is the specified modelSrc dir

    File modelSrc = new File("$buildDir/modelSrc")
    outputs.files modelSrc

    doLast {
        configurations.newConf.allArtifacts.each { artifact -> println artifact }
    }

}

Очевидно, что doLast пока ничего не распаковывает, я просто пытаюсь получить абсолютный путь к самому zip-файлу, и вот где я застрял. Я понятия не имею, как получить путь к файлу, чтобы его можно было разархивировать. Есть помощь?

Большое спасибо

14
задан romacafe 21 November 2011 в 17:06
поделиться