Я ищу некоторые рекомендации по дизайну класса Дженкинс Shared Library. Использование глобальных переменных в качестве разделяемой библиотеки работает нормально, но каждый раз, когда я определяю класс в 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 я получаю сообщение об ошибке: Невозможно разрешить класс de.schlumpf.Tester . Глобальная переменная sayHello работает как шарм ... Кто-нибудь знает, что я здесь не так делаю?
Shared Libary импортируется в настройках системы:
Я знаю, что это похоже на этот, но я не могу найти опечатку или что-то на моем пути ...
Использование общих библиотек Jenkins в качестве классов
Официальная документация здесь: https://jenkins.io/doc/book/pipeline/shared-libraries/
версия
- Дженкинс: вер. 2.150.1
- Трубопровод 2,6
- Трубопровод: Groovy 2.61.1
- Трубопровод: общие библиотеки Groovy 2.12