2009-08-07 10 views
8

Czy istnieje standardowa lub zalecana biblioteka getopts dla Groovy, która pozwoli mi szybko przetworzyć długie i krótkie argumenty z wiersza poleceń w Groovy?GetOpts dla Groovy?

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

Odpowiedz

15

Można też po prostu użyć Groovy CliBuilder (które wewnętrznie używa Apache Commons CLI).

Znajdziesz tu dobry przykład jak to działa tutaj =>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

Jednym z głównych atutów Groovy jest interoperacyjność z Java. Dlatego, poszukując bibliotek do wykorzystania w Groovy, moim pierwszym instynktem jest poszukiwanie istniejących bibliotek Java.

Args4j to zwięzła i elegancka biblioteka do analizowania opcji wiersza poleceń: i doskonale współpracuje z klasami Groovy. Odtworzyłem części tutorial, aby współpracować z Groovy.

Rozważmy następującą klasę 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) 
     } 
} 

skompilować z:

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

i uruchomić go z

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 

Aby uzyskać dane wyjściowe

Business-Logic 
-name: sample 
Powiązane problemy