Esiste una libreria getopts standard o consigliata per Groovy che consentirà di elaborare rapidamente lunghe e brevi discussioni sulla riga di comando in Groovy?GetOpts for Groovy?
foo.groovy Groovy --fname = foo.txt --output = foo.html --verbose
Esiste una libreria getopts standard o consigliata per Groovy che consentirà di elaborare rapidamente lunghe e brevi discussioni sulla riga di comando in Groovy?GetOpts for Groovy?
foo.groovy Groovy --fname = foo.txt --output = foo.html --verbose
Si potrebbe anche semplicemente usare Groovy CliBuilder (che usa internamente Apache Commons Cli).
troverete un buon esempio di come funziona qui =>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
}
...
Uno dei maggiori punti di forza di Groovy è l'interoperabilità con Java. Pertanto, quando cerco librerie da usare in Groovy, il mio primo istinto è cercare le librerie Java esistenti.
Args4j è una libreria concisa ed elegante per l'analisi delle opzioni della riga di comando e funziona perfettamente con le classi di Groovy. Ho riscritto alcune parti di tutorial per funzionare con Groovy.
Si consideri la seguente classe 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)
}
}
compilarlo con:
groovyc -classpath .:args4j-2.0.12/args4j-2.0.12.jar Business.groovy
ed eseguirlo con
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
Per ottenere l'output
Business-Logic
-name: sample
Apache Commons CLI è un'altra libreria Java che si potrebbe usare in Groovy
C'era una volta ho scritto il Groovy Option Parser per eseguire questa operazione. È piuttosto semplice e ha alcune sottigliezze.