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](https://i.stack.imgur.com/2567S.png)
使用方法のヘルプを簡単に注釈をカスタマイズされています。
![enter image description here](https://i.stack.imgur.com/5w1Gi.png)
- 、アノテーションベースの
- のgit-スタイルのサブコマンド
- ネストされたサブサブコマンド
- 強く型付けされたオプションパラメータ
- 強く型付けされた位置パラメータ
- カスタマイズ型変換
- GNUスタイルのロングオプション
- が
- ANSIカラーのいずれかのオプションの接頭辞を可能にどのように多くの引数フィールドは
- 流暢APIを消費
- POSIXスタイルのクラスタ化された短いオプションのための多値オプション
- 直感的なモデル使用方法ヘルプ
- カスタマイズ可能な使用方法
- 単一ソースファイル:アプリケーションを単一のjarファイルにするためにインクルードする
この質問は、スタックオーバーフローに関するトピックです。代わりに[SEソフトウェア推奨](http://softwarerecs.stackexchange.com/)を試してください。 – RealSkeptic
ありがとうございます。 http://softwarerecs.stackexchange.com/questions/38519/java-command-line-parser-with-subcommands-that-have-similiar-options –