Groovy的GetOpts?

Groovy的GetOpts?,groovy,Groovy,是否有一个标准的或推荐的用于Groovy的getopts库允许我在Groovy中快速处理长命令行和短命令行参数 groovy foo.groovy--fname=foo.txt--output=foo.html--verbosegroovy的主要优势之一是与Java的互操作性。因此,在寻找Groovy中使用的库时,我的第一反应是寻找现有的Java库 是一个用于解析命令行选项的简洁而优雅的库,它与Groovy类完美结合。为了使用Groovy,我已经重写了部分 考虑以下Groovy类: import

是否有一个标准的或推荐的用于Groovy的getopts库允许我在Groovy中快速处理长命令行和短命令行参数


groovy foo.groovy--fname=foo.txt--output=foo.html--verbose

groovy的主要优势之一是与Java的互操作性。因此,在寻找Groovy中使用的库时,我的第一反应是寻找现有的Java库

是一个用于解析命令行选项的简洁而优雅的库,它与Groovy类完美结合。为了使用Groovy,我已经重写了部分

考虑以下Groovy类:

import org.kohsuke.args4j.Option;

class Business {

        @Option(name="-name",usage="Sets a name")
        String name

        public void run() {

                println("Business-Logic")
                println("-name: " + name)
        }
}
用以下代码编译:

groovyc -classpath .:args4j-2.0.12/args4j-2.0.12.jar Business.groovy
并运行它

java -cp .:args4j-2.0.12/args4j-2.0.12.jar:/usr/share/java/groovy/embeddable/groovy-all-1.6.4.jar -Dmainclass=Business org.kohsuke.args4j.Starter -name sample
获取输出

Business-Logic
-name: sample

是可以在Groovy中使用的另一个Java库,您也可以简单地使用Groovy CliBuilder(它内部使用Apache Commons Cli)

您将在这里找到一个很好的示例,说明它是如何工作的=>


从前,我写了一封信来完成这项任务。这很直截了当,有一些细节

def cli = new CliBuilder()
cli.with {
     usage: 'Self'
     h longOpt:'help', 'usage information'
     i longOpt:'input', 'input file', args:1
     o longOpt:'output', 'output file',args:1
     a longOpt:'action', 'action to invoke',args:1
     d longOpt:'directory','process all files of directory', args:1
}
def opt = cli.parse(args)
def action
if( args.length == 0) {
    cli.usage()
    return
}
if( opt.h ) {
    cli.usage()
    return
}
if( opt.i ) {
input = opt.i
}
...