You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins技术咨询:禁用未使用构建模块及删除已禁用模块问题

如何在Jenkins 2.107.2中禁用并删除未使用/已禁用模块

针对你在Jenkins 2.107.2版本遇到的禁用未使用模块、删除已禁用模块的问题,我来给你一步步梳理可行的方案——毕竟这个版本确实没有那个一键删除的选项,得用替代方法:

一、禁用未使用的模块

根据你的项目类型(自由风格/Maven多模块),操作步骤略有不同,但核心逻辑一致:

  • 打开目标项目的配置页面(点击项目名称 → 左侧菜单栏的「配置」)
  • 找到模块相关的配置区域:
    • 如果是Maven多模块项目,在「构建」部分找到Maven模块列表
    • 如果是自由风格项目,在「模块」或「MultiJob阶段」区域找到对应条目
  • 对每个你想禁用的模块,勾选条目旁的**「禁用」复选框**(通常在模块名称右侧)
  • 滚动到页面底部,点击「保存」,这些模块就不会再参与后续构建了

二、删除已禁用的模块

因为你的版本没有「Delete All Disabled Modules」选项,这里提供两种方法:

方法1:手动删除(适合模块数量少的情况)

  • 同样进入项目配置页面,找到模块列表
  • 逐个定位已禁用的模块,点击条目右侧的删除按钮(通常是垃圾桶图标或「删除」链接)
  • 全部删除完成后,点击页面底部的「保存」即可

方法2:脚本批量删除(适合模块数量多的场景)

如果手动删太麻烦,可以用Jenkins脚本控制台批量处理,步骤如下:

  1. 进入Jenkins的脚本控制台(主页 → 管理Jenkins → 脚本控制台)
  2. 复制并运行以下Groovy脚本,记得把YOUR_PROJECT_NAME替换成你的项目全名:
def project = Jenkins.instance.getItemByFullName("YOUR_PROJECT_NAME")
if (project instanceof hudson.maven.MavenModuleSet) {
    // 处理Maven多模块项目
    def modulesToRemove = project.getModules().findAll { !it.isEnabled() }
    modulesToRemove.each { module ->
        println "Removing disabled module: ${module.getName()}"
        project.getModules().remove(module)
    }
    project.save()
    println "Successfully removed ${modulesToRemove.size()} disabled modules."
} else if (project instanceof hudson.model.FreeStyleProject) {
    // 处理自由风格MultiJob项目的模块
    def builders = project.getBuildersList()
    builders.each { builder ->
        if (builder instanceof org.jenkinsci.plugins.multijob.MultiJobBuilder) {
            def phases = builder.getPhaseJobs()
            def phasesToRemove = phases.findAll { !it.isEnabled() }
            phasesToRemove.each { phase ->
                println "Removing disabled phase/module: ${phase.getJobName()}"
                phases.remove(phase)
            }
            builder.setPhaseJobs(phases)
        }
    }
    project.save()
    println "Checked and removed disabled modules for free-style multi-job project."
} else {
    println "Unsupported project type. Please check your project configuration."
}
  1. 运行后,控制台会输出删除的模块信息,返回项目配置页面确认即可

注意事项

  • 操作前建议先备份Jenkins配置(管理Jenkins → 备份配置),避免误操作导致配置丢失
  • 脚本控制台需要Jenkins管理员权限才能访问
  • 如果是Pipeline项目,未使用的模块通常定义在Jenkinsfile中,直接修改Jenkinsfile去掉对应模块即可

内容的提问来源于stack exchange,提问作者guru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:40:52