Gradle - Удалить не работает
Я хочу добавить дополнительные функции удаления в чистую задачу (для сборки Java).
Поэтому я пытаюсь добавить следующее к моей gradle сборке script.
clean.doLast{
delete ('test.txt')
}
Когда я настраиваю "чистую" задачу, мой образец файла не удаляется... Я также не получаю сообщение об ошибке, указывающее, что произошло.
Если я попробую следующее:
task deleteStuff(type: Delete) {
delete 'test.txt'
}
Все работает.
Не могу ли я добавить (через doLast) удалить функциональность для задач? Каков правильный способ сделать это (без взлома в задачах Ant).
Ответы
Ответ 1
В этих двух фрагментах кода вы не вызываете Project.delete()
, а Delete.delete()
. Другими словами, вы настраиваете задачу Delete
. Выполнение этого после задачи Delete
выполнено (как в первом фрагменте) слишком поздно.
В случае задачи Delete
нет веских оснований для добавления операции Delete
с doLast
. Ваш второй фрагмент явно предпочтительнее. Для других задач подход doLast
будет работать, потому что у них нет метода Delete
. Или вы можете рассортировать с помощью Project.delete()
.
Ответ 2
Если причина заключается в том, чтобы не тратить время на этапе подготовки (которое выполняется для каждой задачи), doFirst можно использовать для настройки задачи Delete.
Поэтому использование clean.doFirst вместо clean.doLust в приведенном выше примере будет работать.