获取制品名称与版本
下文将演示如何在制品触发主机组部署流程后,通过提取部署流程中上下文变量,在主机中获取触发制品的名称与版本号,并启动一个 java jar 服务。
创建应用与流程
您可以参考此文档在应用中心创建应用与流程,本文不再赘述。
配置流程触发器
本文以 maven 制品为例。
在流程的基础配置中添加触发器。
触发器类型选择 Maven 仓库触发器。
选择能够触发此流程的制品。
添加阶段
在流程中添加阶段,选择“通用类型”下的“自定义变量”。
在阶段中添加两个变量:
- version:获取本次构建 jar 包的版本
- name: 获取本次构建 jar 包的名字
version 的值为:
${trigger["artifacts"].?[name=="jiyunkeji-maven.pkg.coding.net/ccj-demo/mvn-test/com.example:spring-boot"][0]["version"]}
name 的值为:
${trigger["artifacts"].?[name=="jiyunkeji-maven.pkg.coding.net/ccj-demo/mvn-test/com.example:spring-boot"][0]["reference"].split(':')[1]}
其中需将上文中 jiyunkeji-maven.pkg.coding.net/ccj-demo/mvn-test/com.example:spring-boot
部分替换为团队中实际 jar 包的 URL 地址,您可以参考下图进行获取。
更多表达式写法,参考文档 流程表达式
添加部署(主机组)阶段
在流程中添加部署(主机组)阶段,选择对应的主机组与服务名称。在制品下载栏选择对应的 jar 包,参考下图在“目标主机上的绝对路径”中填写自定义变量。
下载的 jar 包会存储在主机中 /opt/${name}-${version}.jar
路径中。
在“后置脚本”中加入命令:nohup java -jar /opt/${name}-${version}.jar > /dev/null 2>&1 &
后启动该 jar 包。
执行完成
运行发布单后出现下图结果说明获取成功。
问题反馈 >

感谢反馈有用
感谢反馈没用
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。