Не удается добавить задачу «Моя задача», так как задача с таким именем уже существует

#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 , что он создает задачу только в том случае, если она еще не существует.