【发布时间】:2019-01-15 22:37:49
【问题描述】:
如何支持所有(或部分)命令和子命令的共享选项?例如,如果最终用户在命令行参数的任何位置提供--stacktrace,则打印的任何错误都将包括堆栈跟踪。
我们可以使用 Mixin 来定义布尔 --stacktrace 选项,并在所有(子)命令中包含此 Mixin,或者使用继承并让所有命令子类化定义布尔 --stacktrace 选项的类,但无论哪种方式,这将为每个命令定义一个单独的布尔选项。哪个选项为真取决于用户将--stacktrace 放在参数中的哪个位置,因此确定是否提供了--stacktrace 意味着遍历所有父命令并查看是否有任何为真。
如果有一种更方便的方法来检测用户是否指定了这样的共享选项,那就太好了。
【问题讨论】:
标签: shell command-line command picocli