首页 > 解决方案 > gradle - plugins {} (脚本块) vs pluginManager.apply()

问题描述

我正在将插件应用于 Gradle 构建脚本。但碰巧有很多方法可以做到这一点。

我发现了以下两种将插件应用到 Gradle 项目的方法:

  1. 用于声明要在脚本中使用的插件的 DSL,即plugins {}脚本块,我认为它配置了一个PluginDependenciesSpec对象。(读这个

    • 为什么DSL 文档的脚本块部分中没有plugins {}显示脚本块?Project
  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 {} 块应用的插件在概念上应用于脚本,并通过扩展脚本目标。目前,就最终结果而言,两种方法之间没有明显的实际差异。

标签: javagradle

解决方案


推荐阅读