#gradle #gradle-plugin
Вопрос:
У меня в myPlugin есть «моя задача», которая используется в другом проекте. При построении проекта я получаю эту ошибку от module1.
Build file 'OtherProject/modules/module1/build.gradle' line: 2
* What went wrong:
A problem occurred evaluating project ':modules:myModule1'.
> Failed to apply plugin 'myPlugin'.
> Cannot add task 'myTask' as a task with that name already exists.
Чтобы исправить это, я установил overwrite: true
в своей задаче создание в InternalModuleFeature.groovy
project.tasks.create(
name: 'myTask',
overwrite: true,
...
)
Это работало нормально, пока я не перешел на Gradle 7.0. Теперь я получаю эту ошибку в модуле 2
Build file 'OtherProject/modules/module2/build.gradle' line: 11
* What went wrong:
A problem occurred evaluating project ':modules:module2'.
> Failed to apply plugin 'myPlugin'.
> Could not create task ':modules:module2:myTask'.
> Unnecessarily replacing a task that does not exist is not supported. Use create() or register() directly instead. You attempted to replace a task named 'myTask', but there is no existing task with that name.
Я попытался добавить нулевую проверку перед созданием задачи — все та же ошибка.
Как мне решить эту проблему?
Возврат к более старой версии Gradle-это не вариант.
Комментарии:
1. не уверен, что это полезно для вас, но есть также
maybeCreate
, что он создает задачу только в том случае, если она еще не существует.