2009-08-07 6 views
8

Gibt es eine standardmäßige oder empfohlene getopts-Bibliothek für Groovy, die es mir erlaubt, lange und kurze Befehlszeilenargumente in Groovy schnell zu verarbeiten?GetOpts für Groovy?

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

Antwort

15

Sie könnten auch einfach Groovy CliBuilder verwenden verwenden könnte (die Apache Commons Cli intern verwendet).

Sie ein gutes Beispiel dafür finden, wie es hier = Arbeiten>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

Eine der großen Stärken von Groovy ist die Interoperabilität mit Java. Bei der Suche nach Bibliotheken, die in Groovy verwendet werden sollen, suche ich daher nach vorhandenen Java-Bibliotheken.

Args4j ist eine prägnante und elegante Bibliothek zum Analysieren der Befehlszeilenoptionen und, die perfekt mit Groovy-Klassen funktioniert. Ich habe Teile des tutorial umgeschrieben, um mit Groovy zu arbeiten.

Betrachten Sie die folgende Groovy Klasse:

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) 
     } 
} 

Kompilieren mit:

groovyc -classpath .:args4j-2.0.12/args4j-2.0.12.jar Business.groovy 

und führen Sie es mit

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 

an den Ausgang

Business-Logic 
-name: sample 
zu erhalten
1

war einmal ich die Groovy Option Parser schrieb diese Aufgabe zu erfüllen. Es ist ziemlich geradlinig und hat einige Nettigkeiten.