Подтвердить что ты не робот

Gradle - Удалить не работает

Я хочу добавить дополнительные функции удаления в чистую задачу (для сборки Java).

Поэтому я пытаюсь добавить следующее к моей gradle сборке script.

clean.doLast{
    delete ('test.txt')
}

Когда я настраиваю "чистую" задачу, мой образец файла не удаляется... Я также не получаю сообщение об ошибке, указывающее, что произошло.

Если я попробую следующее:

task deleteStuff(type: Delete) {
    delete 'test.txt'
}

Все работает.

Не могу ли я добавить (через doLast) удалить функциональность для задач? Каков правильный способ сделать это (без взлома в задачах Ant).

4b9b3361

Ответ 1

В этих двух фрагментах кода вы не вызываете Project.delete(), а Delete.delete(). Другими словами, вы настраиваете задачу Delete. Выполнение этого после задачи Delete выполнено (как в первом фрагменте) слишком поздно.

В случае задачи Delete нет веских оснований для добавления операции Delete с doLast. Ваш второй фрагмент явно предпочтительнее. Для других задач подход doLast будет работать, потому что у них нет метода Delete. Или вы можете рассортировать с помощью Project.delete().

Ответ 2

Если причина заключается в том, чтобы не тратить время на этапе подготовки (которое выполняется для каждой задачи), doFirst можно использовать для настройки задачи Delete. Поэтому использование clean.doFirst вместо clean.doLust в приведенном выше примере будет работать.