如何在 Groovy 中以编程方式构建 AntBuilder 调用?

How can I build up an AntBuilder call programmatically in Groovy?

假设我有这个 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 的工作原理有一些通俗易懂的解释,不胜感激。

你应该可以做到:

private void execute(Object... argumens) {
    ant.sequential {
        exec(executable:"cmd",osfamily:"windows",dir:bin) {
            arg(value: "/c")
            argumens.each {
                arg(value: it)
            }
        }
    }
}