我正在寻找有关设计 Jenkins 共享库类的一些指导。使用全局变量作为共享库工作正常,但每次我在 src/ 中定义一个类并且我想导入它时,我都会收到无法解析类的错误。
这是我的共享库结构:
src
- de
- schlumpf
- Tester.groovy
vars
- sayHello.groovy
类 Tester.groovy
这是我想在管道作业中初始化的类的代码。
package de.schlumpf
public class Tester implements Serializable {
public String name = "test"
Tester(String pName) {
this.name = pName
}
def sayHi() {
echo "Hello, ${this.name}."
}
def sayHi(String name) {
echo "Hello, ${name}."
}
}
var sayHello.groovy
#!/usr/bin/env groovy
def call(String name = 'human') {
echo "Hello, ${name}."
}
管道作业
@Library('pipeline-library-demo')
import de.schlumpf.Tester //de.schlumpf doesn't work as well
stage('Demo') {
echo 'Hello world'
sayHello 'test'
def t = new Tester('Alice')
t.sayHi()
}
在第 2 行中,我得到了错误:Unable to resolve class de.schlumpf.Tester。全局变量 sayHello 就像一个魅力......有谁知道我在这里做错了什么?
我知道这看起来与这个相似,但我在我的路径中找不到错字或其他东西...... 使用 Jenkins 共享库作为类
官方文档在这里:https ://jenkins.io/doc/book/pipeline/shared-libraries/
版本
- 詹金斯:版本。2.150.1
- 管道 2.6
- 管道:Groovy 2.61.1
- 管道:共享 Groovy 库 2.12