В моем проекте несколько модулей, а мой root build.gradle имеет конфигурацию, подобную приведенной ниже:
subprojects {
afterEvaluate {
if ((plugins.hasPlugin("kotlin-android") || plugins.hasPlugin("kotlin"))) {
// gsonkeepdefault
apply plugin: 'kotlin-kapt'
dependencies {
kapt project(':gsonkeepdefault-processor')
kaptTest project(':gsonkeepdefault-processor')
}
}
}
}
Эта конфигурация отлично работает в kotlin плагине gradle 1.3.10, однако при обновлении версия до 1.3.20, проект не может синхронизировать c успешно. Сообщение об ошибке:
Could not find method kapt() for arguments [project ':gsonkeepdefault-processor'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Я думаю, что код apply plugin 'kotlin-kapt'
больше не действует в соответствии с сообщением об ошибке, поэтому я изменяю его на plugins.apply("kotlin-kapt")
, затем он снова работает. Итак, мой вопрос:
- Почему
apply plugin
не работает в subprojects
закрытии после обновления kotlin плагин gradle до 1.3.20? - Почему
plugins.apply()
может работать в subprojects
закрытие после обновления kotlin Gradle плагин до 1.3.20 и в чем разница между ними?