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

不使用Shared Libraries,如何让Jenkins声明式流水线共享通用阶段?

不使用Jenkins共享库复用声明式流水线通用阶段的实现方案

可以实现,无需依赖Jenkins Shared Libraries,通过加载项目内的Groovy脚本即可复用通用阶段,以下是更优雅的优化方案:

方案1:封装通用步骤为可调用函数

通用Groovy脚本(commonSteps.groovy)

// 封装通用阶段的执行逻辑
def execute() {
    echo "启动通用阶段执行"
    sh "echo 执行通用Shell任务"
    // 可添加更多通用步骤,如代码检查、依赖下载等
}

return this

Jenkinsfile调用示例

// 提前加载通用脚本,避免在阶段内重复加载
def commonSteps = load "${WORKSPACE}/relative/path/to/commonSteps.groovy"

pipeline {
    agent any
    stages {
        stage('前置准备') {
            steps {
                echo '执行前置初始化任务'
            }
        }
        stage('通用核心阶段') {
            steps {
                script {
                    // 直接调用通用逻辑
                    commonSteps.execute()
                }
            }
        }
        stage('后置收尾') {
            steps {
                echo '执行后置收尾任务'
            }
        }
    }
}

方案2:封装完整通用阶段(直接导入整个stage)

如果希望通用逻辑作为独立的stage存在,可将整个stage结构封装到Groovy脚本中:

通用Groovy脚本(commonStage.groovy)

// 返回完整的通用阶段定义
def getCommonStage() {
    return {
        stage('通用阶段') {
            steps {
                echo "通用阶段执行中"
                sh "mvn clean package" // 示例通用构建命令
            }
            post {
                success {
                    echo '通用阶段执行成功'
                }
            }
        }
    }
}

return this

Jenkinsfile调用示例

def commonStage = load "${WORKSPACE}/relative/path/to/commonStage.groovy"

pipeline {
    agent any
    stages {
        stage('前置阶段') {
            steps {
                echo '执行前置任务'
            }
        }
        // 动态插入通用阶段
        script {
            commonStage.getCommonStage().call()
        }
        stage('后置阶段') {
            steps {
                echo '执行后置任务'
            }
        }
    }
}

注意事项

  • 使用${WORKSPACE}变量指定脚本路径,比硬编码相对路径更可靠,适配不同工作空间结构
  • 声明式流水线中调用Groovy脚本逻辑必须包裹在script块内,这是声明式语法的强制要求
  • 若通用逻辑需要动态参数,可在Groovy函数中定义参数,例如def execute(String env) { ... },调用时传入对应参数即可

内容的提问来源于stack exchange,提问作者Garfield the Grug Brained

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:22:21