是否可以在不使用手动映射 args[]->method_to_call 的情况下从命令行调用 groovy 脚本方法?
例如,如果我有 groovy 脚本“MyGroovyScript.groovy”,例如:
def foo() {
}
def bar() {
}
Run Code Online (Sandbox Code Playgroud)
我想从命令行调用 foo() 方法,例如:
groovy MyGroovyScript.groovy foo
Run Code Online (Sandbox Code Playgroud)
我相信你能得到的最接近的是:
def foo() {
println "foo called"
}
def bar() {
println "bar called"
}
def woo( a, b ) {
println "Woo called with a=$a and b=$b"
}
static main( args ) {
if( args ) {
"${args.head()}"( *args.tail() )
}
}
Run Code Online (Sandbox Code Playgroud)
因此,然后运行以下命令会给出以下输出:
$ groovy test.groovy foo
foo called
$ groovy test.groovy bar
bar called
$ groovy test.groovy woo tim yates
Woo called with a=tim and b=yates
Run Code Online (Sandbox Code Playgroud)