【问题标题】:display options for subcommands using PicoCLI使用 PicoCLI 显示子命令的选项
【发布时间】:2019-10-24 10:45:04
【问题描述】:

我正在使用 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


    【解决方案1】:

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

    虽然这是一个有用的默认值,但如果这不是您想要的,picocli 使用帮助非常高 customizable

    picocli 使用消息包含以下部分:

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

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

    以下是帮助您入门的示例: https://github.com/remkop/picocli/blob/master/picocli-examples/src/main/java/picocli/examples/customhelp/ShowAll.java

    上面的例子有一个自定义的IHelpSectionRenderer 用于命令列表,以显示命令、子命令和子子命令等的完整层次结构。您可能想做类似的事情,但显示子命令的选项。

    您需要熟悉 picocli Help API 的一些细节,例如 TextTableLayoutIOptionRenderer 等。

    【讨论】:

    • 谢谢 - 非常感谢。我将尝试推荐的解决方案。在我的情况下,父命令并没有做太多(与 jline 一起使用)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多