我有一个简单的Command
,带有一个必需参数:
@Parameters(index = "0", description = "manifest")
private File manifest;
当我从命令行中不带参数调用它时,会收到预期的消息:
Missing required parameter: <manifest>
Usage ....
但是:java
的调用返回代码为0,表示一切正常。
如果参数(或选项)丢失/不正确,是否有办法让picocli
返回非零代码?
答案 0 :(得分:1)
是的,这是可能的。如果用户提供了无效的输入,以下程序将以退出代码456退出:
@Command
class ExitCodeDemo implements Runnable {
@Parameters(index = "0", description = "manifest")
private File manifest;
public void run() {
// business logic here
}
public static void main(String... args) {
CommandLine cmd = new CommandLine(new ExitCodeDemo());
cmd.parseWithHandlers(
new RunLast(),
CommandLine.defaultExceptionHandler().andExit(456),
args);
}
}
4.0版中有plans for adding better exit code support到picocli。