Gradle: как заархивировать вывод из другой задачи zip / tar? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть проект, в котором есть задача под названием shadowDistTar, предоставляемая теневым плагином . Результатом этой задачи является файл tar.

I wi sh, чтобы создать другую задачу Tar, которая будет включать выходной файл tar в новый файл tar, содержащий первый файл tar и некоторые новые файлы. Тем не менее, я не могу получить файл tar для включения в новый архив.

task("myNewTarTask", type: Tar) {
    // configure the Tar task here...

    project.afterEvaluate {

        // we put things in afterEvaluate so the outputs of shadowDistTar are known
        dependsOn shadowDistTar

        shadowDistTar.getOutputs().getFiles().each {
            include it.toString()
        }
    }
}

Я думаю, что проблема здесь в том, что include должен принимать стиль ANT, включающий spe c, который должен быть относительным в исходный каталог задачи Tar, а не в абсолютные пути, что я и получаю с getOutputs(). Как я могу либо получить выходные данные в виде включения ANT-стиля, либо иным образом включить файл tar, созданный shadowDistTar, во второй файл tar, не прибегая к жесткому кодированию пути в include?

1 Ответ

0 голосов
/ 20 февраля 2020

См. Project.tarTree (...) . Например:

task("myNewTarTask", type: Tar) {
   dependsOn shadowDistTar
   from tarTree(shadowDistTar.archiveFile)
   from 'path/to/extra/files'    
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...