Gradle插件开发中build script脚本和buildSrc方式

Gradle插件开发(二)

本文链接:https://blog.youkuaiyun.com/feather_wch/article/details/131746388

Build script脚本

插件写在build.gradle文件中,当前文件可见,简单逻辑

apply plugin:MyPlugin

class MyPlugin implements Plugin<Project>{
   
   
    @Override
    void apply(Project target) {
   
   
        println 111
    }
}

buildSrc目录

插件源代码放在 根目录/buildSrc/src/main/groovy 只对该项目中可见

和app同级目录,给所有子模块的build.gradle使用的

创建groovy文件

### Gradle 中 Kotlin DSL 与 Groovy DSL 的区别 #### 性能差异 在实际应用中,Kotlin DSL Groovy DSL 存在一定的性能差距。特别是在首次构建时,Groovy DSL 显示出了显著的优势,其速度约为 Kotlin DSL 的 2.2 倍[^2]。然而,在 `buildSrc` ABI 变更的情况下,Kotlin DSL 表现较差,而当发生非 ABI 变化时,Kotlin DSL 则表现出约 2.5 倍的速度提升相对于 Groovy DSL。 #### 使用场景适用范围 Gradle 的 DSL 是一种专用于配置项目构建的语言结构,无法应用于其他领域的工作。无论是 Kotlin 还是 Groovy,都遵循 Gradle 定义的 API 规范来实现构建脚本的功能[^4]。因此,两者的使用场景本质上是一致的,但在具体语法表达上存在较大不同。 #### 动态特性对比 Groovy 是一种动态语言,具有灵活的语法特性强大的元编程能力。由于它运行于 JVM 平台上并与 Java 高度兼容,这使得开发者可以轻松利用现有的 Java 库资源[^5]。相比之下,Kotlin 虽然也是一种静态类型的 JVM 编程语言,但它更加注重类型安全性编译期错误检测。这种设计哲学让 Kotlin 更加适合现代开发需求,但也可能增加初学者的学习成本[^1]。 #### 构建文件可读性 对于熟悉 Kotlin 或者偏好强类型系统的开发者来说,采用 Kotlin DSL 编写的构建脚本通常具备更高的可维护性清晰度。因为它的语法规则严格定义了变量声明方式以及函数调用形式等细节部分。另一方面,如果团队成员已经掌握了 Groovy,则继续沿用该技术栈可能会减少迁移过程中的阻力。 ```kotlin // Example of a simple build script using Kotlin DSL plugins { java } repositories { mavenCentral() } dependencies { implementation("org.example:library:1.0.0") } ``` ```groovy // Equivalent example written with Groovy DSL plugins { id 'java' } repositories { mavenCentral() } dependencies { implementation 'org.example:library:1.0.0' } ``` 尽管两者最终都能完成相同的任务目标——即描述如何组装软件制品及其依赖关系网络图谱;但由于各自所依托的基础平台有所区别(一个是完全基于JVM字节码生成器之上重新发明轮子的结果;另一个则是直接继承自母体生态),所以在某些方面必然会产生分歧之处。 #### 版本管理支持 关于版本管理依赖项对齐功能,官方文档提供了详细的指导说明[^3]。无论选用哪种DSL风格编写脚本,都可以通过插件机制引入先进的工具集以简化复杂的多模块工程治理难题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值