Как использовать общие / общие Groovy методы в контексте Jenkins Job DSL Plugin - PullRequest
4 голосов
/ 09 апреля 2019

используя GroovyConsole У меня есть файл main.groovy с:

new Helpers().test("test method called")

и в том же каталоге есть файл Helpers.groovy с содержимым

def test(String str) {
    println "test method called with: " + str
}

Запуск результатов в результатах:

groovy> new Helpers().test("test method called") 

test method called with: test method called

Однако, в контексте использования Jenkins DSL, у меня есть похожий код, в файле generator.groovy:

new Helpers().test("test method called")

, затем в Helpers.groovy в том же каталоге у меня есть:

def test(String str) {
    println("test method called on: " + str)
}

Однако, когда я запускаю, я не получаю никаких выводов (из println) в журналах.Если вместо этого у меня есть def в том же файле main.groovy, он работает нормально.

Вероятно, отсутствует что-то фундаментальное.Он компилируется / зеленый в jenkins, поэтому не уверен, как это адаптировать, поэтому среда выполнения будет делать то, что я хочу.

1 Ответ

0 голосов
/ 21 апреля 2019

Вам нужно импортировать класс при вызове метода из других файлов

Создайте каталог на том же уровне, что и DSL, называемый утилитами, и создайте файл с именем MyUtilities.groovy в каталоге утилит со следующим содержимым:

package utilities

class MyUtilities {
    static void addMyFeature(def job) {
        job.with {
            description('Arbitrary feature')
        }
    }
}

Затем из DSL добавьте что-то вроде этого:

import utilities.MyUtilities
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...