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

无需手册指定目录结构,本地实现Jenkins步骤复用的简便方法

同一仓库内复用Jenkins Pipeline步骤的简便方案

不需要折腾独立的Jenkins共享库,直接在当前仓库内用Groovy脚本封装公共步骤,再在各个Jenkinsfile里调用就行,步骤简单直接:

1. 创建公共步骤脚本

在仓库根目录下新建Groovy文件(推荐放在vars目录下,比如vars/commonPipeline.groovy,也可以直接在根目录建commonSteps.groovy),把重复的流水线逻辑封装成函数:

示例:vars/commonPipeline.groovy

// 封装通用的构建测试流程
def buildAndTest() {
    stage('拉取代码') {
        checkout scm
    }
    stage('编译构建') {
        sh 'mvn clean package -DskipTests'
    }
    stage('单元测试') {
        sh 'mvn test'
    }
    stage('归档产物') {
        archiveArtifacts artifacts: 'target/*.jar', fingerprint: true
    }
}

// 带参数的通用步骤示例
def deployToEnv(String env) {
    stage("部署到${env}环境") {
        sh "ansible-playbook deploy.yml -e env=${env}"
    }
}

2. 在Jenkinsfile中调用公共步骤

如果脚本放在vars目录下,声明式流水线里可以直接调用函数:

pipeline {
    agent any
    stages {
        stage('执行通用流程') {
            steps {
                commonPipeline.buildAndTest()
            }
        }
        stage('自定义部署') {
            steps {
                commonPipeline.deployToEnv('dev')
            }
        }
    }
}

如果是根目录下的普通Groovy文件,需要先加载脚本再调用:

// 加载本地公共脚本
def common = load 'commonSteps.groovy'

pipeline {
    agent any
    stages {
        stage('通用流程') {
            steps {
                script {
                    // 声明式流水线中调用脚本式函数需放在script块内
                    common.buildAndTest()
                }
            }
        }
    }
}

关键注意事项

  • 声明式流水线调用自定义Groovy函数时,若脚本不在vars目录,必须放在script块内执行
  • 公共脚本支持传递参数,可根据不同Jenkinsfile的需求动态调整流程
  • 所有脚本和Jenkinsfile同属一个仓库,提交代码时同步更新,无需额外维护独立仓库或配置Jenkins UI

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:29:55