Как импортировать класс Groovy в файл Jenkinfile?
Как импортировать класс Groovy в файл Jenkinsfile? Я пробовал несколько подходов, но ни один не сработал.
Это класс, который я хочу импортировать:
Thing.groovy
class Thing {
void doStuff() { ... }
}
Это вещи, которые не работают:
Jenkinsfile-1
node {
load "./Thing.groovy"
def thing = new Thing()
}
Jenkinsfile-2
import Thing
node {
def thing = new Thing()
}
Jenkinsfile-3
node {
evaluate(new File("./Thing.groovy"))
def thing = new Thing()
}
1 ответ
Решение
Вы можете вернуть новый экземпляр класса с помощью команды load и использовать объект для вызова doStuff.
Итак, вы бы это в "Thing.groovy"
class Thing {
def doStuff() { return "HI" }
}
return new Thing();
И у вас будет это в вашем сценарии DSL:
node {
def thing = load 'Thing.groovy'
echo thing.doStuff()
}
Который должен вывести "HI" на вывод консоли.
Будет ли это удовлетворить ваши требования?
Это интересно, в любом случае вы можете иметь несколько конструкторов?
Вы можете легко, если вы используете общую библиотеку, но в этом случае класс находится за пределами общей библиотеки