使用 PicoCLI 的子命令的显示选项



我正在使用PicoCLI v4.0.0-beta-1b。 我正在使用从父命令链接的不同子命令。 父命令的可选参数在我启动 CLI 时显示,但不显示子命令。 子命令仅显示在命令下方(但没有选项)。 如何确保子命令的选项也出现在 CLI 中?

Options:
-a, --autocomplete   Generate sample autocomplete
-h, --help           Display this help message.
-v, --verbose        Verbose mode. Helpful for troubleshooting.
-V, --version        Show version info and exit.
Commands:
abc
def 

默认情况下,picocli 仅显示命令子命令的概述,而不显示详细信息。这遵循其他命令套件(如git)的约定。这个想法是最终用户始终可以通过请求该特定子命令的帮助来获取该子命令的详细信息,例如git commit --helpgit help commit

虽然这是一个有用的默认值,但如果这不是您想要的,Piocli 使用帮助是高度可自定义的。

皮科利使用消息包含以下部分:

  • 页眉标题
  • 页眉
  • 剧情简介标题
  • 概要
  • 说明标题
  • 描述
  • 位置参数列表标题
  • 位置参数列表
  • 选项列表标题
  • 选项列表
  • 命令列表标题
  • 命令列表
  • 退出代码列表标题(自 4.0 起)
  • 退出代码列表(自 4.0 起)
  • 页脚标题
  • 页脚

每个部分都有自己的 IHelpSectionRenderer,您可以通过删除、重新排序或替换这些帮助部分渲染器来更改使用帮助。

这里有一个帮助您入门的示例: https://github.com/remkop/picocli/blob/master/picocli-examples/src/main/java/picocli/examples/customhelp/ShowAll.java

上面的示例有一个命令列表的自定义IHelpSectionRenderer,以显示命令、子命令和子子命令等的完整层次结构。您可能想要执行类似操作,但改为显示子命令的选项。

您需要熟悉 picocli 帮助 API 的一些细节,例如 TextTable、Layout、IOptionRenderer 等。

最新更新