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.
Справка по использованию перечисляет зарегистрированные подкоманды в дополнение к параметрам и позиционным параметрам.
Использование помощь легко настраивается с аннотациями.
- аннотаций на основе
- мерзавец стиле Подкоманды
- Вложенные суб-Подкоманды
- сильно типизированных опция параметры
- сильно типизированных позиционные параметры
- настраиваемый тип преобразования
- Варианты многозначных
- интуитивная модель, сколько аргументов поле потребляет
- FLUENT API
- POSIX-стиль кластерных короткие вариант
- GNU стиля длинных опции
- позволяет любому варианту PREfix
- ANSI цвета помощь в использовании
- настраиваемая справка об использовании
- файл с одним источником: включить в качестве источника, чтобы ваше приложение было одним банком
Этот вопрос не по теме для переполнения стека. Попробуйте [рекомендации программного обеспечения SE] (http://softwarerecs.stackexchange.com/). – RealSkeptic
спасибо. http://softwarerecs.stackexchange.com/questions/38519/java-command-line-parser-with-subcommands-that-have-similiar-options –