如何将命令行参数传递给自定义Exec gradle任务?
我试图将命令行参数传递给Gradle Exec任务。所以我想执行一个bash脚本并给它一个参数。但是,在没有参数的情况下执行脚本会非常流畅。打印时,只有带有如何将命令行参数传递给自定义Exec gradle任务?,gradle,Gradle,我试图将命令行参数传递给Gradle Exec任务。所以我想执行一个bash脚本并给它一个参数。但是,在没有参数的情况下执行脚本会非常流畅。打印时,只有带有@选项的参数本身给出了空值。我的代码如下 import org.gradle.api.tasks.options.Option; task buildSamples(type: SampleExecTask){ command() } class SampleExecTask extends Exec { priv
@选项的参数本身给出了空值。我的代码如下
import org.gradle.api.tasks.options.Option;
task buildSamples(type: SampleExecTask){
command()
}
class SampleExecTask extends Exec {
private String argument;
@Option(option = "argument", description = "An argument for the script")
public void setSample(String argument) {
this.argument = argument;
}
@Input
public String getArgument() {
return argument;
}
void command() {
println(argument);
commandLine 'sh', 'myBashScript.sh'
}
}
有人知道为什么我的参数值为null而没有设置吗?
提前谢谢 它确实得到设置,但不是在您引用它的时候。Gradle中的大多数对象都是延迟评估的,并且在配置时不能保证完全配置
如果将command()
放在doFirst
块中,则它不应为空
但是,使用命令行选项中的额外参数扩充Exec任务的更正确方法可能是在setter中配置标准的args
属性:
//Groovy DSL
任务构建示例(类型:SampleExecTask)
类SampleExecTask扩展了Exec{
@选项(Option=“argument”,description=“脚本的参数”)
public void setSample(字符串参数){
args(参数)
}
//可以在构造函数中设置基本配置
SampleExecTask(){
可执行文件('sh')
args('myBashScript.sh')
}
}