Jenkins如何将多个包含build的系统标签替换为自定义文本
Jenkins批量替换系统内置"Build"短语可行方案
你可以根据自己的操作习惯选择以下任意一种方案实现需求:
方案一:插件+自定义JS脚本(推荐,升级Jenkins不丢失配置)
- 第一步:在Jenkins插件管理页面搜索安装
Simple Theme插件,安装完成后重启Jenkins - 第二步:进入「Manage Jenkins」→「Configure System」页面,找到「Theme」配置模块
- 第三步:在「Extra JavaScript」输入框中粘贴以下脚本,脚本中已预置你需要的所有替换规则,后续有新的替换需求直接在
replaceMap中新增键值对即可:
document.addEventListener('DOMContentLoaded', function() { // 替换规则映射,键为原始文本,值为自定义文本 const replaceMap = { 'Build Now': 'Run Job Now', 'Build History': 'Job Run History', 'Build Queue': 'Job Queue', 'Build Executor Status': 'Job Executor Status', 'Last Build': 'Last Run', 'Last Stable Build': 'Last Stable Run' }; // 递归遍历节点替换文本 function replaceText(node) { if (node.nodeType === Node.TEXT_NODE) { let content = node.textContent; for (const [oldStr, newStr] of Object.entries(replaceMap)) { content = content.replaceAll(oldStr, newStr); } node.textContent = content; } else if (node.tagName !== 'SCRIPT' && node.tagName !== 'STYLE') { node.childNodes.forEach(child => replaceText(child)); } } // 初始页面加载完成后替换 replaceText(document.body); // 监听AJAX动态加载的内容,避免局部刷新的内容漏替换 const observer = new MutationObserver(mutations => { mutations.forEach(mut => { mut.addedNodes.forEach(node => replaceText(node)); }); }); observer.observe(document.body, { childList: true, subtree: true }); });
- 第四步:保存系统配置后刷新页面,所有替换规则即可生效
方案二:专用自定义消息插件(零代码操作)
安装Custom Messages插件,该插件专门用于覆写Jenkins所有内置系统文本,安装完成后进入插件配置页,按照页面提示逐个添加原始文本和目标文本的对应规则,保存后即可全局生效,不需要编写任何代码。
方案三:修改核心资源文件(适合固定Jenkins版本无需频繁升级的场景)
- 第一步:进入Jenkins工作目录,找到
war/WEB-INF/lib路径下的jenkins-core核心jar包,解压该jar包 - 第二步:根据你使用的界面语言找到对应的
Messages.properties资源文件,中文界面对应Messages_zh_CN.properties,英文界面对应Messages.properties - 第三步:搜索所有包含"Build"的词条,将对应值修改为你需要的自定义文本
- 第四步:将修改后的文件重新打包成jar包,替换原路径下的核心jar包,重启Jenkins后即可全局生效,注意该方案每次升级Jenkins后都需要重新修改配置。
如果你已经安装了替换Build Now的专用插件,可以在替换规则中删除对应条目避免重复替换。
内容的提问来源于stack exchange,提问作者Harshana
相关产品推荐
相关产品推荐

