Статьи

Интерфейсы командной строки Java (часть 27): cli-parser

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 с открытым исходным кодом, позволяющая большинству организаций легко приобретать и использовать ее.

Дополнительные ссылки

Опубликовано на Java Code Geeks с разрешения Дастина Маркса, партнера нашей программы JCG . См. Оригинальную статью здесь: Интерфейсы командной строки Java (часть 27): cli-parser

Мнения, высказанные участниками Java Code Geeks, являются их собственными.