在 Jenkins 中配置 Build with Parameters(参数化构建)可以让用户在触发构建时动态输入参数(如分支名、环境变量、版本号等)。以下是详细的配置步骤:
- 安装插件(可选)
如果需要动态参数(如 Git 分支列表),需安装以下插件:
Git Parameter Plugin:支持动态选择 Git 分支或标签。
Extended Choice Parameter Plugin:支持复杂参数类型(多选、层级参数等)。
- 配置参数化构建
(1) 进入项目配置
打开 Jenkins 项目 → Configure(配置)。
勾选 This project is parameterized(参数化构建)。
(2) 添加参数
点击 Add Parameter,选择参数类型。以下是常见参数类型:
示例 1:字符串参数(手动输入)
Name: VERSION
Default Value: 1.0.0
Description: 输入要构建的版本号。
示例 2:选项参数(下拉框选择)
Name: ENVIRONMENT
Choices: dev
test
prod
Description: 选择部署环境。
示例 3:布尔参数(开关)
Name: RUN_TESTS
Default Value: 勾选(默认执行测试)。
示例 4:Git 分支参数(动态分支列表)
确保已安装 Git Parameter Plugin。
添加参数 → Git Parameter:
Name: BRANCH
Parameter Type: Branch
Branch Filter: .(匹配所有分支,或正则如 release/.)
Sort Mode: Descending(按时间倒序排列)。
- 在构建过程中使用参数
(1) 源码管理(Git 分支参数)
如果使用 Git 分支参数:
在 Source Code Management → Git 配置中:
Branches to build: refs/heads/${BRANCH}(直接引用参数名 ${BRANCH})
(2) 构建命令(Shell/Maven)
在 Build 步骤中,通过 ${PARAM_NAME} 引用参数:
Shell 示例
echo "Building version: VERSION"mvncleaninstall−Denv={VERSION}" mvn clean install -Denv=VERSION"mvncleaninstall−Denv={ENVIRONMENT}
条件判断(例如跳过测试)
if [ “${RUN_TESTS}” = “false” ]; then
mvn clean install -DskipTests
else
mvn clean install
fi
(3) 文件路径或环境变量
在 Inject environment variables 或配置文件中使用参数:
例如写入配置文件
echo “app.version=${VERSION}” > src/main/resources/version.properties
- 触发参数化构建
保存配置后,回到项目首页。
点击 Build with Parameters。
输入或选择参数值,点击 Build。
- 高级配置(可选)
(1) 参数联动(依赖参数)
使用 Active Choices Plugin 实现级联下拉框(如选择环境后动态加载对应配置)。
(2) 条件触发步骤
通过 Conditional BuildStep Plugin 实现根据参数执行不同操作:
if ${ENVIRONMENT} == ‘prod’ → 执行生产环境部署脚本
else → 跳过
注意事项
参数命名规则:使用大写字母和下划线(如 DEPLOY_ENV),避免特殊字符。
默认值:建议设置合理的默认值,防止用户误操作。
安全性:敏感参数(如密码)使用 Credentials Parameter 或 Secret Text Parameter。
参数可见性:通过插件(如 Role-based Strategy)控制用户对参数的访问权限。
完整配置示例
参数列表:
- BRANCH(Git 分支参数,动态加载)
- ENVIRONMENT(选项参数:dev/test/prod)
- VERSION(字符串参数,默认值 1.0.0)
- RUN_TESTS(布尔参数,默认勾选)
构建步骤:
- Git 拉取
${BRANCH}分支。 - 执行
mvn clean install -Denv=${ENVIRONMENT}。 - 若
${RUN_TESTS}为 true,运行单元测试。
通过上述配置,用户可在构建时灵活选择参数,实现高度定制化的构建流程。

1万+

被折叠的 条评论
为什么被折叠?



