2017-01-02 4 views
2

Мы разрабатываем приложение Java Cli, которое имеет подкоманды с аналогичными параметрами. Это как SVN:Анализатор командной строки Java с подкомандами, которые имеют похожие параметры

svn commit -m messsage --username ARG --password ARG 
svn checkout -r HEAD --username ARG --password ARG 

Я имею в виду, что каждая субкоманда имеет особые аргументы, и мы также глобальные аргументы, и у нас есть некоторые аргументы, которые relvant для некоторых подкоманд, но не для всех.

Какой аргумент анализа аргументов командной строки поддерживает эти требования?

спасибо.

+0

Этот вопрос не по теме для переполнения стека. Попробуйте [рекомендации программного обеспечения SE] (http://softwarerecs.stackexchange.com/). – RealSkeptic

+0

спасибо. http://softwarerecs.stackexchange.com/questions/38519/java-command-line-parser-with-subcommands-that-have-similiar-options –

ответ

2

picocli поддерживает вложенные подкоманды на произвольную глубину.

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

CommandLine commandLine = new CommandLine(new MainCommand()) 
     .addSubcommand("cmd1", new ChildCommand1()) // 1st level 
     .addSubcommand("cmd2", new ChildCommand2()) 
     .addSubcommand("cmd3", new CommandLine(new ChildCommand3()) // 2nd level 
       .addSubcommand("cmd3sub1", new GrandChild3Command1()) 
       .addSubcommand("cmd3sub2", new GrandChild3Command2()) 
       .addSubcommand("cmd3sub3", new CommandLine(new GrandChild3Command3()) // 3rd 
         .addSubcommand("cmd3sub3sub1", new GreatGrandChild3Command3_1()) 
         .addSubcommand("cmd3sub3sub2", new GreatGrandChild3Command3_2()) 
           // etc 
       ) 
     ); 

Вам также может понравиться его использование с использованием стилей и цветов ANSI.

Справка по использованию перечисляет зарегистрированные подкоманды в дополнение к параметрам и позиционным параметрам.

enter image description here

Использование помощь легко настраивается с аннотациями.

enter image description here

  • аннотаций на основе
  • мерзавец стиле Подкоманды
  • Вложенные суб-Подкоманды
  • сильно типизированных опция параметры
  • сильно типизированных позиционные параметры
  • настраиваемый тип преобразования
  • Варианты многозначных
  • интуитивная модель, сколько аргументов поле потребляет
  • FLUENT API
  • POSIX-стиль кластерных короткие вариант
  • GNU стиля длинных опции
  • позволяет любому варианту PREfix
  • ANSI цвета помощь в использовании
  • настраиваемая справка об использовании
  • файл с одним источником: включить в качестве источника, чтобы ваше приложение было одним банком

 Смежные вопросы

  • Нет связанных вопросов^_^