使用脚本执行自定义 Gradle 任务
Posted
技术标签:
【中文标题】使用脚本执行自定义 Gradle 任务【英文标题】:Executing custom Gradle task using scripts 【发布时间】:2021-12-30 05:59:34 【问题描述】:如何在 build.gradle 中编写将执行此代码的任务:
**gradle hideSecret -Pkey=test123456 -PkeyName=YourSecretKeyName**
我使用这个库:https://github.com/klaxit/hidden-secrets-gradle-plugin 我想在预构建中自动制作 hideSecrets。
像这样的:
task hideSecret
doLast
exec
workingDir "$rootDir"
commandLine "hideSecret -Pkey=$key -PkeyName=$keyName"
afterEvaluate
tasks.getByName("preBuild").dependsOn("hideSecret")
【问题讨论】:
【参考方案1】:您不需要重新定义 hideSecret 任务。只需根据需要设置属性并配置依赖项:
afterEvaluate
project.ext.key = 'test123456'
project.ext.keyName = 'YourSecretKeyName'
tasks.getByName("preBuild").dependsOn("hideTask")
【讨论】:
很好,但是如何使用此命令正确编写任务:hideSecret -Pkey=$key -PkeyName=$keyName?【参考方案2】:你可以定义一个 Exec 类型的任务
task executeCMD(type:Exec)
workingDir '.'
commandLine 'gradle', 'hideSecret', '-Pkey=test123456', '-PkeyName=YourSecretKeyName'
doLast
println "Executed!"
或者你可以像这样将它与 gradle project exec 一起使用
task executeCMD
doLast
exec
workingDir "."
executable 'gradle'
args 'hideSecret', '-Pkey=test123456'', '-PkeyName=YourSecretKeyName'
println "Executed!"
更多关于执行的信息可以在gradle official doc找到。
【讨论】:
导致错误:任务失败并出现异常。 ------------ * 出了什么问题:任务':app:executeCMD'的执行失败。 > 启动进程 'command 'build 'test-project'' 时出现问题:原因:error=2,没有这样的文件或目录以上是关于使用脚本执行自定义 Gradle 任务的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )
Android Gradle 插件自定义 Gradle 任务 ⑤ ( 为自定义 Gradle 任务添加依赖任务 | Gradle 任务依赖执行顺序控制 )
Android Gradle 插件自定义 Gradle 任务 ⑧ ( 控制 Gradle 执行任务顺序 | Task#shouldRunAfter 函数 | 三个函数使用场景对比 )
Android Gradle 插件自定义 Gradle 任务 ⑧ ( 控制 Gradle 执行任务顺序 | Task#shouldRunAfter 函数 | 三个函数使用场景对比 )
Android Gradle 插件自定义 Gradle 任务 ⑥ ( 执行 Gradle 任务的简化版命令 | 同时执行多个 Gradle 任务的命令 )