CLI Parser , изначально размещенный и заархивированный в Google Code , теперь доступен на GitHub . Страница проекта архива Google Code описывает CLI Parser как «очень простую в использовании, очень маленькую зависимость», которая использует аннотации для «создания очень кратких основных методов, которым не нужно знать, как анализировать аргументы командной строки с помощью полей, свойств, или метод на основе инъекции. » Текущая страница проекта GitHub описывает CLI Parser как «крошечную…, очень простую в использовании библиотеку для анализа различных типов аргументов командной строки или списков свойств».
CLI Parser ожидает, что этап «определения» будет реализован с помощью аннотации @Argument
. Это продемонстрировано в следующем листинге кода, который предоставляет простой пример, определяющий опции «file» и «verbose», как это было сделано в предыдущих статьях этой серии . Полный список кодов доступен на GitHub .
Этап «Определение» с парсером CLI
1
2
3
4
5
|
@Argument (alias= "f" , description= "Path/name of the file" , required= true ) private String file; @Argument (alias= "v" , description= "Verbosity enabled?" ) private boolean verbose; |
Код, показанный выше, определяет два варианта. Каждый параметр может быть указан с именем, соответствующим имени поля ( file
или verbose
) или с указанным псевдонимом ( f
или v
). В CLI Parser любой регистр (полное имя поля или псевдоним) указывается в командной строке одним дефисом. Как показано в примере кода, параметр может быть указан как «обязательный», и может быть предоставлен текст описания для использования в инструкциях справки / использования.
Этап «синтаксического анализа» выполняется в CLI Parser с помощью статических функций в классе Args
. В этом случае я использую Args.parseOrExit(Class, String[])
как показано в следующем листинге кода.
Этап «Парсинга» с парсером CLI
1
|
final List<String> unparsed = Args.parseOrExit(instance, arguments); |
Этап «опрос» осуществляется путем доступа к полям, @Argument
как показано в следующем листинге кода.
Этап «Допрос» с парсером CLI
1
2
|
out.println( "File path/name is '" + instance.file + "' and verbosity is " + instance.verbose); |
Код «определение» определил опцию «файл» как «обязательный». Если эта опция не указана в командной строке, CLI Parser автоматически распечатывает оператор использования, используя значения «description», указанные в соответствующих аннотациях @Argument
. Это показано на следующем снимке экрана, за которым следует еще один снимок экрана, указывающий комбинации параметров -file
/ -f
и -verbose
/ -v
.
Есть особенности CLI Parser, которые следует учитывать при выборе каркаса или библиотеки, чтобы помочь с анализом командной строки в Java.
- CLI Parser является открытым исходным кодом и доступен под лицензией Apache, версия 2.
- CLI Parser — это небольшая, легкая библиотека с cli-parser-1.1.2.jar, размер которого составляет около 15 КБ и не имеет сторонних зависимостей.
CLI Parser, как рекламируется, является «крошечной» и «супер простой в использовании библиотекой для анализа различных типов аргументов командной строки». Это либеральная лицензия Apache с открытым исходным кодом, позволяющая большинству организаций легко приобретать и использовать ее.
Дополнительные ссылки
- cli-parser (GitHub)
- cli-parser (Google Code)
- cli-parser (MVNRepository
Опубликовано на Java Code Geeks с разрешения Дастина Маркса, партнера нашей программы JCG . См. Оригинальную статью здесь: Интерфейсы командной строки Java (часть 27): cli-parser
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |