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