附加到Exec任务中的参数列表

时间:2017-04-28 05:25:22

标签: android gradle groovy

假设我想在特定案例的arg列表的开头添加特定的args,并且在这两种情况下仍然包含args的公共列表,如下所示:

if (conditional) {
    executable foo
}
else {
    executable bar
    args ['arg1', 'arg2']
}

args = ['other', 'common', 'args']

这抱怨> Cannot cast object 'arg1' with class 'java.lang.String' to class 'int'

我试图为exec任务运行一个公共apis:

public DefaultExecHandleBuilder args(Object... args) {
    if (args == null) {
        throw new IllegalArgumentException("args == null!");
    }
    this.arguments.addAll(Arrays.asList(args));
    return this;
}

public DefaultExecHandleBuilder args(Iterable<?> args) {
    GUtil.addToCollection(arguments, args);
    return this;
}

在此定义:https://github.com/gradle/gradle/blob/master/subprojects/core/src/main/java/org/gradle/process/internal/DefaultExecHandleBuilder.java

在此处记录:https://docs.gradle.org/3.4.1/dsl/org.gradle.api.tasks.Exec.html

我意识到我可以创建一个List<String>并构建它以填充args,但我觉得我可以忽略一个更简单的方法。

1 个答案:

答案 0 :(得分:0)

我对args的语法不正确。

使用

args 'arg1, 'arg2'

后面跟着

args 'rest', 'of', 'the', 'args'

按预期附加工作