You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将复杂的Gradle任务封装为更简洁的自定义任务?

如何将复杂的Gradle任务封装为更简洁的自定义任务?

嗨,我来帮你搞定这个问题!你想要把那串冗长的Gradle命令封装成简洁的自定义任务,其实用Gradle原生的任务依赖+属性配置就能轻松实现,完全不用再手动敲一大串参数,而且比直接执行命令行更符合Gradle的设计逻辑。

下面是适配Kotlin DSL的实现代码,直接放到你的build.gradle.kts里就行:

tasks.register("updateLicenseInformation") {
    group = "Entreco"
    description = "Update all license information json file"

    // 获取你要调用的目标任务
    val exportLibraryTask = tasks.named("features:about:exportLibraryDefinitions")
    
    // 让自定义任务依赖这个目标任务,确保它会被优先执行
    dependsOn(exportLibraryTask)

    // 在任务执行前设置需要的项目参数(对应你之前用-P传递的内容)
    doFirst {
        project.ext.set("aboutLibraries.exportPath", "src/commonMain/composeResources/files")
        project.ext.set("aboutLibraries.exportVariant", "release")
    }
}

为什么这么写更合适?

  • 这种方式利用了Gradle的任务依赖机制,比直接调用命令行执行./gradlew ...更高效——Gradle可以自动处理增量构建,避免重复执行已经完成的步骤。
  • 所有参数都固化在脚本里,不用担心手动输入时写错路径或者参数,完美满足你简化操作的需求。

之后你只需要在终端运行./gradlew updateLicenseInformation,Gradle就会自动帮你执行原来的复杂任务,并且带上正确的参数啦!

备注:内容来源于stack exchange,提问作者Entreco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 10:59:34