启动一个基于Spring-Shell的非交互式应用程序



是否可以启动Spring-Shell应用程序的特定命令,然后在命令完成后返回/退出shell ?此外,是否有可能将应用程序的退出代码(system .exit)暴露给操作系统外壳?

为了我的目的,我将利用插件机制和Spring-Shell的cli注释。但一般来说,没有人与应用程序交互,而是一个作业调度器(UC4)将启动应用程序并检查退出代码,以便在退出代码不等于0的情况下生成电子邮件。另一方面,对于我们客户的手动测试,还需要tab补全,使用帮助等。

这个行为已经是内置的(尽管我们考虑过删除它,或者至少使它成为可选的)。我现在看到它是有用的:)

只需用(唯一的)命令调用shell, shell就会启动、执行命令并退出。此外,shell的返回代码已经表明是否存在错误(例如,尝试使用不存在的命令)。当然,如果您的自定义命令没有正确指示错误(即打印错误消息,但执行正常返回),这将不起作用。你应该抛出一个异常。

行为又回来了

使用@my-script运行spring-shell,如下所示:

java -jar my-app.jar @my-script

my-script是包含命令的文件:

my-command1 arg1 arg2
my-command2 arg1 arg2

最新更新