【发布时间】:2019-04-04 10:09:53
【问题描述】:
我正在使用 picocli java 命令行库来实现命令行应用程序。但是我想知道 picocli 是否提供了一个功能,可以帮助处理命令行不接收任何参数或选项的情况(默认情况下)。
谢谢
【问题讨论】:
我正在使用 picocli java 命令行库来实现命令行应用程序。但是我想知道 picocli 是否提供了一个功能,可以帮助处理命令行不接收任何参数或选项的情况(默认情况下)。
谢谢
【问题讨论】:
我不确定这是否能回答您的问题,但当然可以创建一个没有选项或位置参数的基于 picocli 的命令:
@Command(name = "demo", description = "no options or positional parameters")
public class Demo implements Runnable {
@Override
void run() {
System.out.println("Hello");
}
public static void main(String[] args) {
CommandLine.run(new Demo(), args);
}
}
或者您的问题是如何为选项提供默认值?如果是这样的话,你能看看用户手册的Default Values部分,让我们知道有什么不清楚的地方吗?
【讨论】:
Thingy 类not 实现Runnable 或Callable。见required subcommands。这符合您的要求吗?
spec.commandLine().getParseResult()来获取ParseResult,然后调用parseResult.expandedArgs() 获取用户指定参数的列表。如果列表为空,则打印使用情况。您可以将其放在Mixin 中,以减少子命令中的代码重复。 (请随时提出 picocli GitHub 票以讨论更多细节。)