try/catch 中的 Wildfly CLI 部署始终存在,代码为 1
Wildfly CLI deployment in try/catch always exists with code 1
我有一个相当简单的 wildfly 10 cli 部署脚本:
try
deploy dummy.war --server-groups=main-server-group
catch
deploy dummy.war --force
end-try
脚本是 运行 来自 bash 脚本。问题是如果第一次部署失败,bash 脚本总是 returns 1。 catch 块中的部署执行良好。然而,return 代码破坏了构建,因此我需要一个解决方案。
我想构建一个无论 dummy.war 当前部署状态如何都能正常工作的部署脚本。
有什么让它发挥作用的想法吗?
谢谢!
deploy
命令是在服务器上执行操作的实际命令。我认为 try/catch/finally 不适用于命令,仅适用于操作。您可以 file an issue 支持 try/catch/finally。我不确定它是否可行,但它的工作方式。
也就是说 if/else 语句应该是可能的。
if (outcome == success) of /deployment=dummy.war:read-resource
deploy dummy.war --force
else
deploy dummy.war --server-groups=main-server-group
end-if
我在一个 bash 脚本中使用两个单独的 cli 命令解决了这个问题:
jboss-cli.sh --connect --command="undeploy dummy.war --all-relevant-server-groups"
jboss-cli.sh --connect --command="deploy dummy.war --server-groups=main-server-group"
如果没有 dummy.war 部署,第一个命令将失败,但如果部署命令成功,bash 脚本的退出代码为 0,所以我的构建是快乐的:)
我有一个相当简单的 wildfly 10 cli 部署脚本:
try
deploy dummy.war --server-groups=main-server-group
catch
deploy dummy.war --force
end-try
脚本是 运行 来自 bash 脚本。问题是如果第一次部署失败,bash 脚本总是 returns 1。 catch 块中的部署执行良好。然而,return 代码破坏了构建,因此我需要一个解决方案。
我想构建一个无论 dummy.war 当前部署状态如何都能正常工作的部署脚本。
有什么让它发挥作用的想法吗?
谢谢!
deploy
命令是在服务器上执行操作的实际命令。我认为 try/catch/finally 不适用于命令,仅适用于操作。您可以 file an issue 支持 try/catch/finally。我不确定它是否可行,但它的工作方式。
也就是说 if/else 语句应该是可能的。
if (outcome == success) of /deployment=dummy.war:read-resource
deploy dummy.war --force
else
deploy dummy.war --server-groups=main-server-group
end-if
我在一个 bash 脚本中使用两个单独的 cli 命令解决了这个问题:
jboss-cli.sh --connect --command="undeploy dummy.war --all-relevant-server-groups"
jboss-cli.sh --connect --command="deploy dummy.war --server-groups=main-server-group"
如果没有 dummy.war 部署,第一个命令将失败,但如果部署命令成功,bash 脚本的退出代码为 0,所以我的构建是快乐的:)