GetOpts для Groovy? - PullRequest
       13

GetOpts для Groovy?

8 голосов
/ 07 августа 2009

Существует ли стандартная или рекомендуемая библиотека getopts для Groovy, которая позволит мне быстро обрабатывать аргументы длинной и короткой командной строки в Groovy?

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

Ответы [ 4 ]

15 голосов
/ 10 августа 2009

Вы также можете просто использовать Groovy CliBuilder (который внутренне использует Apache Commons Cli).

Хороший пример того, как это работает, вы найдете здесь => 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 голосов
/ 07 августа 2009

Одним из основных преимуществ Groovy является совместимость с Java. Поэтому, когда я ищу библиотеки для использования в Groovy, мой первый инстинкт - искать существующие библиотеки Java.

Args4j - это сжатая и элегантная библиотека для анализа параметров командной строки и , которая отлично работает с классами Groovy. Я переписал части учебника для работы с Groovy.

Рассмотрим следующий класс 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

и запустите его с

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

Чтобы получить вывод

Business-Logic
-name: sample
1 голос
/ 27 октября 2011

Когда-то я написал Groovy Option Parser для выполнения этой задачи. Это довольно просто и имеет некоторые тонкости.

0 голосов
/ 08 августа 2009

Apache Commons CLI - это еще одна библиотека Java, которую вы можете использовать в Groovy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...