创建和使用共享Pipeline库
创建和使用共享Pipeline库
创建共享仓库
创建一个独立的代码仓库,结构如下:
my-shared-library/
├── vars/ # 全局变量/函数
│ └── utils.groovy # 示例工具函数
├── src/ # 正式类库(遵循Java包结构)
│ └── com/
│ └── example/
│ └── BuildTools.groovy
└── resources/ # 非代码资源(如配置文件)
vars 目录下的全局变量可以直接在pipeline中使用,即当写 sayHello('world')
,实际调用的是 sayHello.groovy
中的call函数
src
目录是标准的Java源码结构,目录中的类被称为类库(Library class),而 @Library('global-shared-library@master')
就是一次性静态加载 src
目录下所有代码到 classpath
中。
TIP
src
目录中的类,可以使用Groovy
中的@Grab
注解,自动下载第三方依赖包
配置Jenkins全局共享库
- 进入 Manage Jenkins > Configure System > Global Pipeline Libraries
- 配置参数:
- Name:
my-shared-lib
(后续在 Pipeline 中引用的名称) - Default version: 分支/Tag(如
main
) - Retrieval method: 选择仓库类型(如 Git)
- Project Repository: 你的库仓库 URL(如
https://github.com/user/my-shared-library.git
)
- Name:
编写共享库函数示例
在 vars/utils.groovy
中定义函数:
def sayHello(String name) {
echo "Hello, ${name}!"
}
// 重要:通过 call() 方法实现“自定义步骤”
def call(Map config) {
echo "Build version: ${config.version}"
}
在 src/com/example/BuildTools.groovy
定义类:
package com.example
class BuildTools {
static void compile(String cmd) {
println "Compiling with: ${cmd}"
}
}
在 Pipeline 中使用共享库
方式1:通过注解引用(推荐)
@Library('my-shared-lib@main') _ // @库名@分支,尾部下划线表示不指定名命
pipeline {
agent any
stages {
stage('Demo') {
steps {
script {
// 调用 vars/ 下的全局函数
utils.sayHello("Jenkins")
utils(version: '1.0.0') // 调用 call() 方法
// 调用 src/ 中的类
com.example.BuildTools.compile('make')
}
}
}
}
}
方式2:动态加载(灵活指定版本)
library identifier: 'my-shared-lib@dev', retriever: modernSCM(
[$class: 'GitSCMSource', remote: 'https://github.com/user/my-shared-library.git']
)
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Blog!
喜欢就支持一下吧