Я применяю плагины к скрипту сборки Gradle. Но бывает много способов сделать это.
Я нашел два следующих метода применения плагинов к проекту Gradle:
DSL для объявления плагинов для использованияв сценарии, т.е. plugins {}
блок сценария, который, я думаю, настраивает объект PluginDependenciesSpec
. ( Прочтите это )
- Почему блок сценариев
plugins {}
не показан в разделе Блоки сценариев документации Project
DSL?
Вызов 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 {}, концептуально применяются к сценарию и, соответственно, к цели сценария. В настоящее время нет видимой практической разницы между двумя подходами в отношении конечного результата.