0

假设我有这个 Groovy 代码:

ant.exec(executable:"cmd",osfamily:"windows",dir:bin) {
    arg(value: "/c")
    arg(value: "add-user.bat")
    arg(value: user)
    arg(value: pw)
    arg(value: "--silent")                                                                                                      
}

我的代码中经常有这样的 exec 调用,参数数量不同,所以我认为它可能是一个带有对象数组参数的函数:

private void execute(Object... argumens) {
    ant.sequential {
        exec(executable:"cmd",osfamily:"windows",dir:bin) {
            arg(value: "/c")
            //What should I do here
        }
    }
}

//It would be called like this:
execute("add-user.bat",user,pw,"--silent");

我应该在 exec 元素中写什么?是否有可能在该 exec 内部进行迭代?

请耐心等待,我是一个 Java 人,想在 Maven 中编写一些脚本,所以我不明白 Groovy 的 AntBuilder 中发生的魔法。如果您对 Groovy 中的 AntBuilder 如何工作有一些易于理解的解释,我们将不胜感激。

4

1 回答 1

2

你应该能够做到:

private void execute(Object... argumens) {
    ant.sequential {
        exec(executable:"cmd",osfamily:"windows",dir:bin) {
            arg(value: "/c")
            argumens.each {
                arg(value: it)
            }
        }
    }
}
于 2018-03-08T17:33:46.190 回答