配置Gradle实现简洁命令:用gradle deploy替代冗长启动命令
自定义Gradle
deploy 任务简化程序运行命令 问题背景
现有Kotlin程序入口逻辑如下:
fun main(args: Array<String>) = runBlocking { if(args.first() == "deploy") { // do deployment } }
当前需执行冗长命令 gradle run --args="deploy" 触发部署逻辑,希望简化为直接执行 gradle deploy,且不依赖操作系统特定脚本。
解决方案
在项目的Gradle构建脚本中添加自定义任务,让其依赖run任务并预设参数:
若使用Kotlin DSL(build.gradle.kts):
tasks.register("deploy") { // 让deploy任务依赖run任务,执行deploy时自动触发run dependsOn(tasks.run) // 为run任务设置固定参数"deploy" tasks.run.configure { args = listOf("deploy") } }
若使用Groovy DSL(build.gradle):
task deploy { dependsOn run run { args = ["deploy"] } }
原理说明
- 自定义
deploy任务通过dependsOn关联官方run任务,确保执行gradle deploy时会自动启动程序运行流程 - 直接在自定义任务中配置
run任务的args参数,替代命令行传入的--args参数,实现参数预设
验证
执行命令:
gradle deploy
即可等价于原命令gradle run --args="deploy",触发程序中的部署逻辑。
内容的提问来源于stack exchange,提问作者Myles Bennett
相关产品推荐
相关产品推荐

