使用picocli

时间:2019-03-28 17:34:07

标签: picocli

我有一个简单的Command,带有一个必需参数:

@Parameters(index = "0", description = "manifest")
private File manifest;

当我从命令行中不带参数调用它时,会收到预期的消息:

Missing required parameter: <manifest>
Usage ....

但是:java的调用返回代码为0,表示一切正常。 如果参数(或选项)丢失/不正确,是否有办法让picocli返回非零代码?

1 个答案:

答案 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。