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样式和颜色的使用帮助。
除了选项和位置参数之外,用法帮助还列出了注册的子命令。
的使用帮助,很容易与注释定制。
- 基于注解
- 混帐风格子
- 嵌套子子
- 强类型选项参数
- 强类型的位置参数
- 自定义类型转换
- 多值选项
- 一个字段有多少争论消耗
- 流利的API
- POSIX风格的集群短选项
- GNU风格的长选项
- 直观的模型允许任何选项前缀
- ANSI颜色使用帮助
- 可自定义使用帮助
- 单一源文件:包含源代码以保持您的应用程序单个罐子
这个问题是堆栈溢出题外。改为尝试[SE软件建议](http://softwarerecs.stackexchange.com/)。 – RealSkeptic
谢谢。 http://softwarerecs.stackexchange.com/questions/38519/java-command-line-parser-with-subcommands-that-have-similiar-options –