2009-08-07 10 views
8

Groovyに標準で推奨されるgetoptsライブラリがありますが、Groovyで長いコマンドライン引数と短いコマンドライン引数を素早く処理できますか?GroovyのためのGetOpts?

グルーヴィーfoo.groovyは--fname = foo.txtの--output = foo.htmlという--verboseのGroovyの大きな強みの

答えて

15

に使用することができ、他のJavaライブラリです。

あなたはそれが私は、このタスクを達成するためにGroovy Option Parserを書いたワンス・アポン・ア・タイムここ=>http://www.reverttoconsole.com/blog/codesnippets/groovy-clibuilder-in-practice/

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 
} 
... 
3

一つは、Javaとの相互運用性です。したがって、Groovyで使用するライブラリを探すとき、私の最初の本能は既存のJavaライブラリを探すことです。

Args4jは、コマンドラインオプションを解析するための簡潔でエレガントなライブラリです。はGroovyクラスで完全に機能します。私はGroovyを扱うためにtutorialの部分を書き直しました。

は、次の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 

と出力に

Business-Logic 
-name: sample 
を取得するには

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 

でそれを実行します

0

Apache Commons CLIあなたは、単に(内部的にはApache CommonsのCLIを使用しています)GroovyのCliBuilderを使用することができますが、Groovyの

1

をどのように機能するかを示す良い例があります。それはかなりストレートで、いくつかの細心の注意があります。

関連する問題