java - gradle - plugins {} (脚本块) vs pluginManager.apply()
问题描述
我正在将插件应用于 Gradle 构建脚本。但碰巧有很多方法可以做到这一点。
我发现了以下两种将插件应用到 Gradle 项目的方法:
用于声明要在脚本中使用的插件的 DSL,即
plugins {}
脚本块,我认为它配置了一个PluginDependenciesSpec
对象。(读这个)- 为什么DSL 文档的脚本块部分中没有
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 {} 块应用的插件在概念上应用于脚本,并通过扩展脚本目标。目前,就最终结果而言,两种方法之间没有明显的实际差异。
解决方案
推荐阅读
- javascript - 在 React Native 中的 FlatList 中实现粘性标头
- sql-server - 使用条件遍历列
- sql - 如何更改 SSRS 中的多个值?
- python - Python 为大型数据集创建了字典截断输出。如何保存完整的字典?
- r - 在另一列标记的一定半径内,根据 Lat 和 Lon 列中的值省略行并创建一个新的数据框
- electron - 如何替换现有图层中的 GIMP 图像
- scala - 如何根据索引 Spark Scala 用 2D 数组拆分列
- performance - AVX-512 多核而非单核上的缓存命中和未命中
- javascript - NodeJS Cookie错误的过期日期
- python - 带回溯的骑士之旅