Этот код:
configure(allprojects) {
println "applying java plugin to $project"
apply plugin: 'java-library'
//...
}
объявляет, что плагин библиотеки Java должен применяться ко всем проектам Gradle в вашей кодовой базе.Обратите внимание, что плагины java
(приложение, библиотека), как правило, несовместимы с плагинами android
(приложение, библиотека).Вы можете думать о последнем как о сильно измененных версиях первого.
Эта несовместимость вызывает ошибку, которую вы видите.
Наилучшее разрешение зависит от целей вашей кодовой базы в целом и отGradle проекты в нем.Вероятно, наименее инвазивные варианты:
- Удалите
apply plugin: 'java-library'
и связанную конфигурацию из конфигурации allprojects
и вместо этого вручную примените плагин в каждом проекте Gradle, который в этом нуждается; - Добавитьособый случай в вашей конфигурации
allprojects
, чтобы плагин java-library
применялся ко всем проектам , за исключением нового.
Чтобы развернуть второй случай, вы можетесделать что-то вроде:
configure(allprojects) {
if (getPath() != "absolute/path/to/new/project") {
println "applying java plugin to $project"
apply plugin: 'java-library'
// ...
}
}
Я использовал getPath
здесь, поскольку getName
не гарантированно является уникальным в целом, но если это в вашем конкретном случае, то это было бы более удобным условием для записи ичитать.