【问题标题】:Picocli: Require certain parametersPicocli:需要某些参数
【发布时间】:2021-07-29 02:33:58
【问题描述】:

picocli 是否可以实现以下功能?

有效:

  • -A (-B | -C)

  • -D (-B | -C) [(-B | -C) ...]

(不需要-A / -D)

无效:

  • -B 不带 -A 或 -D

  • -C 不带 -A 或 -D

  • -A 与 -B 和 -C

  • -D 与 -B 和 -C

  • -A 不带 (-B | -C)

  • -D 不带 (-B | -C)

谢谢!

【问题讨论】:

  • 欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 以了解如何提高问题的质量。请参阅:Why is “Is it possible to…” a poorly worded question?(不要只是将您的问题改为“如何”)。请显示您尝试过的尝试以及您从尝试中得到的问题/错误消息。
  • @Progman,在我看来,考虑到使用参数组创建 CLI 命令的领域,这是一个完全有效的问题。问题是该库是否以及如何提供所需的验证行为。

标签: java picocli


【解决方案1】:

应该可以使用 picocli 的argument groups 得到这个:

[(-A |-D) (-B | -C) [(-B | -C) ...]]

...通过为-A和-D创建一个互斥组,为-B和-C创建另一个互斥组(具有多重性1..*),并创建这两个互斥组的复合组依赖。由于不需要 -A 和 -D,因此该复合组的多重性将是 0..1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    相关资源
    最近更新 更多