Как импортировать класс Groovy в файл Jenkinfile?

как импортировать класс Groovy в файл Jenkinsfile? Я пробовал несколько подходов, но ни один не работал.

это класс, который я хочу импортировать:

вещь.в 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()
}

который должен печатать "привет" на выходе консоли.

это удовлетворило бы ваши требования?