Мой проект имеет удаленную зависимость, которая на самом деле является просто zip определенных файлов, которую нужно разархивировать где-то, так что сборка может генерировать новые источники java из файлов. (Я говорю в общем, чтобы сосредоточиться на основной проблеме, а не на специфике)
Я бы не ожидал, что это будет так сложно, но я не смог заставить его работать. Вот то, что я создал:
Я определил новую конфигурацию:
configurations {
newConf
}
Позже я определил одну зависимость для этой настройки. Он разрешает zip файл, который мне нужно взорвать:
dependencies {
newConf "group:name:[email protected]"
}
Пока все это пахнет правильно, хотя, если кто-то не согласен, я слушаю.
Наконец, мне нужно определить задачу, которая взрывает 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 еще не распаковывает ничего, я просто пытаюсь получить абсолютный путь к самому zipfile, и вот где я застрял. Я понятия не имею, как получить путь к файлу, чтобы я мог разархивировать его. Любая помощь?
Большое спасибо