了解插件的实现选项
脚本、预编译脚本或二进制插件之间的选择取决于你的特定要求和偏好。
脚本插件简单易写,因为它们直接写在构建脚本中。它们使用 Kotlin DSL 或 Groovy DSL 编写。它们适用于小型的一次性任务或快速实验。但是,随着构建脚本的规模和复杂性增加,它们可能变得难以维护。
预编译脚本插件是编译为 Java 类文件并打包在库中的 Kotlin DSL 脚本。与脚本插件相比,它们提供了更好的性能和可维护性,并且可以在不同的项目中重复使用。你也可以使用 Groovy DSL 编写它们,但不建议这样做。
二进制插件是用 Java 或 Kotlin 编写的成熟插件,编译为 JAR 文件并发布到存储库中。它们提供了最佳的性能、可维护性和可重用性。它们适用于需要在项目、构建和团队之间共享的复杂构建逻辑。你也可以使用 Scala 或 Groovy 编写它们,但不建议这样做。
以下是实现 Gradle 插件的所有选项的细分
# | 使用 | 类型 | 插件是 | 通过应用 | 推荐? |
---|---|---|---|---|---|
1 |
Kotlin DSL |
脚本插件 |
在 |
|
否[1] |
2 |
Groovy DSL |
脚本插件 |
在 |
|
否[1] |
3 |
Kotlin DSL |
预编译脚本插件 |
|
|
是[2] |
4 |
Groovy DSL |
预编译脚本插件 |
|
|
否[3] |
5 |
Kotlin DSL |
二进制插件 |
|
|
是[2] |
6 |
Groovy DSL |
二进制插件 |
|
|
否[2] |
7 |
Java |
二进制插件 |
抽象类,实现了 |
|
是[2] |
8 |
Kotlin |
二进制插件 |
抽象类,实现了 |
|
是[2] |
9 |
Groovy |
二进制插件 |
抽象类,实现了 |
|
否[2] |
10 |
Scala |
二进制插件 |
抽象类,实现了 |
|
否[2] |
如果您怀疑插件代码有问题,请尝试创建 构建扫描 以识别瓶颈。 Gradle 分析器 可以帮助自动生成构建扫描并收集更多低级信息。
@groovy.transform.CompileStatic
。