Я знаю, что этот вопрос задавался много раз здесь и в других местах, пока я искал ответ.Тем не менее, меня все еще удивляет, почему библиотека синтаксического анализатора командной строки не предоставляет этот общий сценарий использования, где у меня есть группа подкоманд, каждая подкоманда имеет свой собственный набор обязательных и необязательных аргументов.Подобная конструкция может быть найдена в git / svn, хотя в их случае команда подкоманды является автономной программой, если я не ошибаюсь.
Подводя итог, то, что я ищу, это простой способ:
top_command subcmd_A [ command A's options ....]
top_command subcmd_B [ command B's options ....]
...
В мире Java двумя часто упоминаемыми библиотеками являются Apache Command CLI и JSAP.Я не вижу, чтобы кто-либо из них имел это в виду - хотя вы, вероятно, могли бы подстроить и настроить многое, чтобы соответствовать ... но основной поток определения опции, зарегистрироваться ... затем, в конце, разобрать их все не 'Если рассматривать случай с разными подкомандами, валидация и синтаксический анализатор должны вести себя по-разному.
Может быть, в данном случае принято считать, что это слишком специфично для приложения и должно быть оставлено на усмотрение самого приложения.Один из способов, который я могу придумать, - это определить класс BaseCommand, и каждая подкоманда расширяет его и регистрирует себя ... как способ разбить его на части для простого управления.Если бы любая зрелая среда могла сделать это, я был бы признателен за любой указатель здесь.
Хотя я могу ошибаться в своем понимании возможностей текущего синтаксического анализатора, любое понимание очень ценится.