gradle - очистка после выполнения задачи в зависимости от - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть две пользовательские задачи, такие как -

task taskA(type: SomeTaskA) {
    ....
}
task taskB(type: SomeTaskB, dependsOn: 'taskA') {
    ....
}

taskA создает файл и выполняет над ним некоторые операции.TaskB также выполняет некоторые операции над файлом, который генерируется taskA.Я могу запустить обе задачи по отдельности.

Мне нужно удалить этот файл после завершения команды gradle, т. Е. Если я запускаю gradle taskA, то файл будет удален после завершения задачи A, а если я запустил gradle taskB, то файлудалится после завершения задачи B.

Я могу выполнить первую часть, добавив блок doLast и добавив туда логику удаления, но когда я запускаю taskB, у меня нет файла для выполнения операции (поскольку taskA doLast уже удалил файл).

В таком случае можно ли остановить taskA doLast, когда я запускаю taskB, или каким-либо другим способом добиться этого?

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете создать отдельную задачу «очистки» для обработки удаления файла, и обе задачи taskA и taskB будут завершены к этой задаче cleanup:

task cleanup{
    doLast{
        // DELETE the file
    }
}

taskA.finalizedBy cleanup
taskB.finalizedBy cleanup

Таким образом, файл всегда будет удален, либо вы запустите такты A или B. И это обеспечит выполнение taskB до того, как файл будет удален также задачей cleanup.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...