如何在Gradle中获得原始运行任务的精确副本?
有人知道注册几个运行任务的最简单方法是什么吗?这些任务表示原始任务的精确副本,并带有已更改的应用程序参数?或者可能是如何为运行任务提供表示应用程序参数的可选参数。 基本上,我希望我的构建包含一些预定义的选项如何运行应用程序,并且不希望声明新的JavaExec,它需要手动配置,而我已经默认提供了准备运行任务如何在Gradle中获得原始运行任务的精确副本?,gradle,gradle-kotlin-dsl,Gradle,Gradle Kotlin Dsl,有人知道注册几个运行任务的最简单方法是什么吗?这些任务表示原始任务的精确副本,并带有已更改的应用程序参数?或者可能是如何为运行任务提供表示应用程序参数的可选参数。 基本上,我希望我的构建包含一些预定义的选项如何运行应用程序,并且不希望声明新的JavaExec,它需要手动配置,而我已经默认提供了准备运行任务 gradle run --args='--mode=middle' ---> gradle run || gradle runDefault || gradle run def
gradle run --args='--mode=middle' ---> gradle run || gradle runDefault || gradle run default
gradle run --args='--mode=greed' ---> gradle runGreed || gradle run greed
gradle run --args='--mode=lavish' ---> gradle runLavish || gradle run lavish
到目前为止,我只提出了一个选项,建议使用提供的arguments属性实现我自己的JavaExec_自定义任务类。对于我的目标来说,它似乎过于复杂和陈词滥调。您可以创建任务,在
doFirst
或doLast
闭包中修改实际运行的任务的配置:
// Groovy-DSL
task runGreed {
doFirst {
run.args '--mode=greed'
}
finalizedBy run
}
// Kotlin-DSL
register("runGreed") {
doFirst {
run.get().args = listOf("--mode=greed")
}
finalizedBy(run)
}
可以为参数使用属性
task run(type: JavaExec) {
args property('run.args').split(' ')
...
}
用法
gradle run-Prun.args='foo bar baz'
非常感谢。这正是我想要的!