Groovyに標準で推奨されるgetoptsライブラリがありますが、Groovyで長いコマンドライン引数と短いコマンドライン引数を素早く処理できますか?GroovyのためのGetOpts?
グルーヴィーfoo.groovyは--fname = foo.txtの--output = foo.htmlという--verboseのGroovyの大きな強みの
Groovyに標準で推奨されるgetoptsライブラリがありますが、Groovyで長いコマンドライン引数と短いコマンドライン引数を素早く処理できますか?GroovyのためのGetOpts?
グルーヴィーfoo.groovyは--fname = foo.txtの--output = foo.htmlという--verboseのGroovyの大きな強みの
に使用することができ、他の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
}
...
一つは、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
でそれを実行します
Apache Commons CLIあなたは、単に(内部的にはApache CommonsのCLIを使用しています)GroovyのCliBuilderを使用することができますが、Groovyの
をどのように機能するかを示す良い例があります。それはかなりストレートで、いくつかの細心の注意があります。