Kotlin Gradle Plugin: В чем разница между apply plugin и plugins.apply в подпроектах после kotlin gradle plugin 1.3.20? - PullRequest
0 голосов
/ 09 января 2020

В моем проекте несколько модулей, а мой 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"), затем он снова работает. Итак, мой вопрос:

  1. Почему apply plugin не работает в subprojects закрытии после обновления kotlin плагин gradle до 1.3.20?
  2. Почему plugins.apply() может работать в subprojects закрытие после обновления kotlin Gradle плагин до 1.3.20 и в чем разница между ними?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...