Как импортировать класс из общей библиотеки Jenkins в конвейер - PullRequest
0 голосов
/ 23 мая 2018

Я использовал некоторые глобальные методы в каталоге / var общей библиотеки, и все работало нормально.Теперь мне нужно сохранить состояние процесса, поэтому я пишу классный класс.В основном у меня есть класс ClassTest.groovy в / src, который выглядит примерно так:

class ClassTest {
    String testString
    def method1() { ... }
    def method2() { ... }
}

и в начале конвейера

library 'testlibrary@'
import ClassTest

с результатом:

WorkflowScript: 2: не удалось разрешить класс ClassTest @line 2, столбец 1.
import ClassTest

раньше, я просто был goind

library 'testlibrary@' _

и использование методов как

script {
    libraryTest.method1()
    ...
    libraryTest.method2()
}

, где методы были в файле /var/libraryTest.groovy и все работало.Итак, я знаю, что разделяемая библиотека есть, но меня смущает то, как groovy / Jenkins обрабатывают классы / разделяемые библиотеки.

Как правильно импортировать класс?Я не могу найти простой пример (с groovy файлом, структурой файла и конвейером) в документации.

РЕДАКТИРОВАТЬ: я переместил файл в 'src / com / company / ClassTest.groovy' и изменил конвейер как

@Library('testlibrary@') import com.company.ClassTest
def notification = new ClassTest()

но теперь ошибка

неожиданный токен: package @ line 2

первые две строки файла groovy:

// src/com/company/ClassTest.groovy
package com.company;

1 Ответ

0 голосов
/ 24 мая 2018

Пока что это то, что я нашел.

Для загрузки библиотеки в конвейере я использовал:

@Library('testlibrary@') import com.company.ClassTest
def notification = new ClassTest()

В файле класса нет пакет инструкция.Я думаю, что он мне не нужен, потому что у меня нет других файлов или классов, поэтому мне не нужен пакет.Кроме того, я получил ошибку при использовании того же имени для класса и для файла, в котором находится класс.На ошибку специально пожаловались и попросили один из них поменять.Я думаю, что эти две вещи связаны с Дженкинсом.

Это работает, и библиотека загружается.

...