是否可以启动Spring-Shell应用程序的特定命令,然后在命令完成后返回/退出shell?还可以将应用程序的退出代码(System.exit)公开给操作系统shell吗?
出于我的目的,我将利用插件机制和Spring-Shell的CLI-Annotations。但一般情况下,应用程序没有人工交互,而是作业调度程序(UC4)将启动应用程序并检查退出代码以在退出代码不等于0的情况下生成电子邮件。另一方面,用于手动测试我们的客户也需要标签完成,使用帮助等。
答案 0 :(得分:5)
此行为已经内置(虽然我们考虑将其删除,或者至少使其成为可选项)。我现在看到它很有用:)
只需使用您的(唯一)命令调用shell,shell就会启动,执行命令并退出。此外,shell的返回码已经指示是否存在错误(例如,尝试使用不连续的命令)。当然,如果您的自定义命令没有正确指示错误(即打印错误消息但执行正常返回),这将不起作用。你应该抛出异常。
答案 1 :(得分:0)
行为又回来了。
使用@ my-script运行spring-shell,如下所示:
java -jar my-app.jar @my-script
其中my-script是包含您的命令的文件:
my-command1 arg1 arg2
my-command2 arg1 arg2