启动基于Spring-Shell的应用程序而不是交互式

时间:2014-08-22 17:35:10

标签: spring-shell

是否可以启动Spring-Shell应用程序的特定命令,然后在命令完成后返回/退出shell?还可以将应用程序的退出代码(System.exit)公开给操作系统shell吗?

出于我的目的,我将利用插件机制和Spring-Shell的CLI-Annotations。但一般情况下,应用程序没有人工交互,而是作业调度程序(UC4)将启动应用程序并检查退出代码以在退出代码不等于0的情况下生成电子邮件。另一方面,用于手动测试我们的客户也需要标签完成,使用帮助等。

2 个答案:

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