1. 概述
Jenkins 是目前最流行的开源自动化服务器之一,广泛用于软件的自动化构建、测试和部署。和其他自动化平台一样,Jenkins 会给每个任务(Job)分配一个唯一的构建编号(Build Number)。默认情况下,这个编号从 1 开始,每次构建递增。
构建编号在追踪构建记录、定位问题时非常有用。但在某些场景下,我们可能希望将编号重置为 1,或者设置为某个特定值。幸运的是,Jenkins 提供了多种方式来实现这一点。
本文将介绍几种在 Jenkins 中重置构建编号的方法,帮助你根据实际需求选择最适合的方式。
2. 通过覆盖任务历史重置构建编号
⚠️ 这类方法会修改或删除已有构建记录,操作前请务必确认已备份或了解后果,尤其在生产环境中。
2.1 使用 Next Build Number 插件
Jenkins 的插件生态非常丰富,重置构建编号也不例外。Next Build Number 插件可以非常方便地设置下一个构建编号。
✅ 操作步骤:
- 进入 Jenkins 控制台:
Dashboard -> Manage Jenkins -> Plugins
- 安装
Next Build Number
插件 - 安装完成后,左侧菜单会出现
Set Next Build Number
选项 - 点击该选项,输入你希望的下一个构建编号并保存
- 触发一次构建,新编号即生效
⚠️ 注意:
- 输入的编号必须大于当前最新构建的编号
- 如果想回退到之前的编号,需先删除历史构建记录
2.2 修改 nextBuildNumber
文件
如果不想安装插件,也可以手动修改 Jenkins 任务目录下的 nextBuildNumber
文件。
✅ 操作步骤:
- 登录 Jenkins 服务器
- 找到任务目录:
${JENKINS_HOME}/jobs/<job-name>
- 编辑
nextBuildNumber
文件,修改为期望的下一个构建编号 - 进入 Jenkins 控制台,点击
Dashboard -> Manage Jenkins -> Reload Configuration from Disk
- 触发一次构建,新编号生效
⚠️ 注意:
- 与插件方式相同,如果希望使用已有编号,需先删除旧构建
- 修改后务必重载配置,否则不生效
2.3 使用 Jenkins 脚本控制台(Script Console)
Jenkins 提供了一个 Groovy 脚本执行入口,我们可以通过它来动态修改构建编号。
✅ 基本脚本示例:
jobName = "<job-name>"
item = Jenkins.instance.getItemByFullName(jobName)
item.updateNextBuildNumber(<number>)
✅ 完整重置并删除旧构建脚本:
jobName = "<job-name>"
item = Jenkins.instance.getItemByFullName(jobName)
// 删除所有旧构建
item.builds.each { build ->
build.delete()
}
item.updateNextBuildNumber(1)
⚠️ 注意:
- 需要替换
<job-name>
为实际任务名称 - 删除构建是不可逆操作,请谨慎执行
2.4 使用 Jenkins CLI
如果希望通过脚本自动执行构建编号重置,可以使用 Jenkins CLI。
✅ 操作步骤:
- 创建 Groovy 脚本文件
reset_build_number.groovy
,内容如下:
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
jobName = "<job-name>"
item = Jenkins.instance.getItemByFullName(jobName)
// 删除所有旧构建
item.builds.each { build ->
build.delete()
}
item.updateNextBuildNumber(1)
- 执行 CLI 命令:
java -jar jenkins-cli.jar -s https://<jenkins-controller-ip>/ -auth admin:password groovy = < reset_build_number.groovy
⚠️ 注意:
- 替换
<jenkins-controller-ip>
、admin
和password
为实际值 - 此方法会删除所有历史构建,生产环境慎用
3. 通过复制并重命名任务重置构建编号
上述方法都会影响任务的历史记录,如果你希望保留历史记录,同时又想从 1 开始重新计数,可以使用“复制任务”方式。
✅ 操作步骤:
- 在 Jenkins 中找到原任务,点击
Configure
- 复制任务(可使用
Copy existing item
功能) - 重命名新任务,保持配置一致
- 删除原任务(可选),或保留作为历史备份
✅ 优点:
- 保留原任务历史记录
- 新任务构建编号从 1 开始
❌ 缺点:
- 占用额外磁盘空间
- 需要手动同步配置
4. 总结
本文介绍了在 Jenkins 中重置构建编号的几种常见方式,包括:
方法 | 是否修改历史 | 是否推荐 | 说明 |
---|---|---|---|
使用 Next Build Number 插件 |
✅ | ✅ | 简单安全,推荐首选 |
修改 nextBuildNumber 文件 |
✅ | ✅ | 无需插件,适合离线操作 |
使用 Script Console | ✅ | ⚠️ | 灵活但需谨慎操作 |
使用 Jenkins CLI | ✅ | ⚠️ | 适合自动化脚本 |
复制并重命名任务 | ❌ | ✅ | 不修改历史,适合备份场景 |
根据实际需求选择合适的方式,尤其是生产环境,操作前务必做好备份和测试。