gpt4 book ai didi

Java 命令行解析器,其子命令具有类似选项

转载 作者:行者123 更新时间:2023-11-30 06:07:28 24 4
gpt4 key购买 nike

我们开发了一个 Java Cli 应用程序,它具有带有类似选项的子命令。就像 svn:

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

我的意思是每个子命令都有特殊的参数,我们也有全局参数,并且我们有一些与某些子命令相关的参数,但不适用于所有子命令。

哪个命令行参数解析器支持该要求?

谢谢。

最佳答案

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

  • 基于注释
  • git 风格的子命令
  • 嵌套子子命令
  • 强类型选项参数
  • 强类型位置参数
  • 可自定义类型转换
  • 多值选项
  • 关于字段消耗多少参数的直观模型
  • 流畅的 API
  • POSIX 风格的集群短选项
  • GNU 风格的长选项
  • 允许任何选项前缀
  • 使用帮助中的 ANSI 颜色
  • 可定制的使用帮助
  • 单个源文件:作为源包含,以使您的应用程序保持在单个 jar 中

关于Java 命令行解析器,其子命令具有类似选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41426125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com