gradle - плагины {} (блок скриптов) против pluginManager.apply () - PullRequest
2 голосов
/ 25 октября 2019

Я применяю плагины к скрипту сборки Gradle. Но бывает много способов сделать это.

Я нашел два следующих метода применения плагинов к проекту Gradle:

  1. DSL для объявления плагинов для использованияв сценарии, т.е. plugins {} блок сценария, который, я думаю, настраивает объект PluginDependenciesSpec. ( Прочтите это )

    • Почему блок сценариев plugins {} не показан в разделе Блоки сценариев документации Project DSL?
  2. Вызов pluginManager.apply() (который применяет плагины к экземпляру PluginManager) или вызов plugins.apply() (который применяет плагины к экземпляру PluginContainer) ( Чтениеэтот )

Так что для применения, скажем, org.gradle.java плагина, я мог бы сделать следующее в build.gradle файле:

>> pluginManager.apply 'org.gradle.java'

>> plugins.apply 'org.gradle.java'

>> plugins {
    id 'org.gradle.java'
}

Что такоеразличия между каждым?

PS: Я нашел это в документации для PluginDependenciesSpec, но тогда почему так много разных методов?

Блок plugins {} служит аналогично методу PluginAware.apply (java.util.Map), который можно использовать для непосредственного применения плагина к объекту Project или аналогичному. Ключевое отличие состоит в том, что плагины, применяемые с помощью блока plugins {}, концептуально применяются к сценарию и, соответственно, к цели сценария. В настоящее время нет видимой практической разницы между двумя подходами в отношении конечного результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...