如何在Maven构建生成的JAR文件名中添加CI流水线构建号
Maven构建JAR追加CI构建号到文件名的实现方法
1. 修改pom.xml配置
首先调整项目根目录下的pom.xml文件,配置构建生成的JAR文件名规则,提供两种可选配置方案:
- 方案1:设置默认构建号,本地构建也带统一后缀
<project> <!-- 其余原有配置保持不变 --> <properties> <!-- 本地构建时默认的构建号后缀,可自行调整为SNAPSHOT或其他自定义值 --> <build.number>SNAPSHOT</build.number> </properties> <build> <!-- 配置最终生成的JAR文件名规则 --> <finalName>${project.artifactId}_${project.version}-${build.number}</finalName> <!-- 其余原有build配置保持不变 --> </build> </project>
- 方案2:本地构建保持原有文件名,仅CI环境加构建号后缀
<project> <!-- 其余原有配置保持不变 --> <build> <!-- 仅当传入build.number参数时才追加构建号后缀 --> <finalName>${project.artifactId}_${project.version}${build.number != null ? '-' + build.number : ''}</finalName> <!-- 其余原有build配置保持不变 --> </build> </project>
2. CI流水线中传递构建号参数
不同CI工具的构建号内置环境变量不同,在CI的构建命令中通过-D参数将构建号传入Maven即可:
- Jenkins流水线使用命令:
mvn clean package -Dbuild.number=${BUILD_NUMBER} - GitLab CI流水线使用命令:
mvn clean package -Dbuild.number=${CI_JOB_ID} - GitHub Actions流水线使用命令:
mvn clean package -Dbuild.number=${GITHUB_RUN_NUMBER} - 本地测试时可手动指定构建号验证效果:
mvn clean package -Dbuild.number=100
注意:如果项目使用了
spring-boot-maven-plugin等特殊打包插件,上述全局的finalName配置默认生效,无需额外修改插件配置;如有自定义插件配置,可在对应插件的<configuration>节点下单独指定finalName属性即可。
内容的提问来源于stack exchange,提问作者Doyel Kundu
相关产品推荐
相关产品推荐

