如何从Bamboo中获取Maven构件的时间戳与构建编号?
Maven+Bamboo构建SNAPSHOT构件命名解析与Bamboo变量获取方案
一、构件名称字段来源
20231009.065059:由Maven生成的时间戳,格式为yyyyMMdd.HHmmss,是Maven部署SNAPSHOT版本时自动替换-SNAPSHOT的标识,用于区分不同时间的构建产物。2:同样是Maven生成的构建编号,同一天内多次部署SNAPSHOT时,该编号会递增,用来区分同日内的重复构建。
注:Bamboo仅作为执行Maven命令的流水线载体,这两个值的生成逻辑完全由Maven的maven-deploy-plugin控制。
二、Bamboo后续阶段获取这些值的方法
1. 解析Maven部署日志提取
Maven部署时会输出类似Uploaded to nexus: http://xxx/repo/my-project-2.3.0-20231009.065059-2.jar的日志,可通过Bamboo日志解析规则捕获文件名:
- 进入对应Maven任务的配置页,找到「日志解析」选项
- 添加正则规则:
Uploaded to .*: .*/(my-project-\d+\.\d+\.\d+-\d+\.\d+-\d+\.jar) - 将匹配到的第1组内容保存为自定义变量(如
${bamboo.custom.snapshotArtifactName}) - 后续阶段用Shell脚本拆分变量:
ARTIFACT_NAME=${bamboo.custom.snapshotArtifactName} TIMESTAMP=$(echo $ARTIFACT_NAME | cut -d'-' -f3) BUILD_NUM=$(echo $ARTIFACT_NAME | cut -d'-' -f4 | sed 's/.jar//')
2. 预生成变量并输出到日志
在pom.xml中配置Maven插件,提前输出时间戳和构建编号,再由Bamboo捕获:
- 在
pom.xml的build节点添加插件:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <phase>validate</phase> <goals><goal>exec</goal></goals> <configuration> <executable>bash</executable> <arguments> <argument>-c</argument> <argument>echo "SNAPSHOT_TIMESTAMP=$(date +%Y%m%d.%H%M%S)" && echo "SNAPSHOT_BUILD_NUM=${bamboo.buildNumber}"</argument> </arguments> </configuration> </execution> </executions> </plugin>
- 在Bamboo的Maven任务中,添加命令行参数:
clean deploy -Dbamboo.buildNumber=${bamboo.buildNumber} - 配置Bamboo日志解析规则,捕获
SNAPSHOT_TIMESTAMP=xxx和SNAPSHOT_BUILD_NUM=xxx的行,保存为自定义变量,后续直接调用即可。
3. 调用Nexus API查询
若构件已推送至Nexus,可在Bamboo后续阶段通过Nexus REST API查询最新SNAPSHOT构件信息:
# 示例curl请求,需替换为你的Nexus地址、认证信息和仓库名 ARTIFACT_INFO=$(curl -u admin:admin123 http://your-nexus-url/service/rest/v1/search/assets?repository=snapshots&name=my-project&version=2.3.0-SNAPSHOT) # 用jq解析返回的JSON获取文件名(需提前安装jq) ARTIFACT_NAME=$(echo $ARTIFACT_INFO | jq -r '.items[0].name') # 拆分出时间戳和构建编号 TIMESTAMP=$(echo $ARTIFACT_NAME | cut -d'-' -f3) BUILD_NUM=$(echo $ARTIFACT_NAME | cut -d'-' -f4 | sed 's/.jar//')
内容的提问来源于stack exchange,提问作者Fcom
相关产品推荐
相关产品推荐

