Использовать функциональность задачи Gradle в другой задаче

#gradle

#gradle

Вопрос:

У меня есть задача Gradle Tar, которая создает архивный файл с исходными текстами моего проекта.

Теперь мне нужно дублировать эту функциональность, но добавить файл в архив.

Есть ли способ расширить / наследовать исходную функциональность задачи без дублирования кода?

Спасибо.

Ответ №1:

Да, используйте метод with. API может выглядеть немного странно, поскольку в нем говорится, что он принимает a CopySpec в качестве входных данных, но Tar задача на самом деле тоже a CopySpec .

Пример (Groovy DSL):

 task myDefaultTar(type: Tar) {
    archiveBaseName = "default"
    from("$buildDir/default.txt")
}

task myOtherTar(type: Tar) {
    archiveBaseName = "other"
    with(myDefaultTar)
    from("$buildDir/additional_file.txt")
}