У моего проекта есть удаленная зависимость, которая на самом деле представляет собой просто 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-файлу, и вот где я застрял. Я понятия не имею, как получить путь к файлу, чтобы его можно было разархивировать. Есть помощь?
Большое спасибо