Импортировать классный класс в конвейер - PullRequest
0 голосов
/ 08 февраля 2019

Мне нужно иметь возможность создавать классы и использовать их в конвейере Дженкинса.

Допустим, у меня есть очень простой класс groovy, объявленный в скрипте groovy, который выглядит следующим образом:

class MyClass {

    @Override
    public String toString() {
        return "toto";
    }

}
return MyClass();

Этот класс находится в папке: Project\Buildfiles\Jenkins\com\external

Тогда в моем Jenkinsfile я бы сделал:

node('mynode') {
   toto = load 'Project\Buildfiles\Jenkins\com\external\MyClass.groovy'
   echo toto.toString()
}

И это на самом деле работает

Однако это создает определенное количество проблем с моей IDE, которая не понимает, что происходит.Кроме того, это не позволяет мне иметь несколько конструкторов в моем пользовательском классе.

То, что я пытался сделать, и для чего мне нужна помощь, заключается в следующем.В файле с именем ExternalClasses.groovy:

class Toto{

    @Override
    public String toString() {
        return "toto";
    }

}

class Tata{

    @Override
    public String toString() {
        return "tata";
    }

}

return this;

В JenkinsFile:

node('mynode') {
   external= load 'Project\Buildfiles\Jenkins\com\external\ExternalClasses.groovy'
   toto = new Toto();
   tata = new Tata();
}

И это не удается Я пробовал несколько подходов, использовал имена пакетов, использовалсинтаксис Toto.new (), но ни один из них не работал.

Любые идеи?

Редактирование общих библиотек:

У меня фактически есть общая библиотека, она используется несколькимикоманды и содержит очень конкретные данные, которые должны принадлежать командам, а не библиотеке.

Мы должны иметь возможность выбросить из библиотеки вещи, которые ей не принадлежат.Целью данной работы является облегчение указанной библиотеки неуниверсального кода.

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете использовать функцию Shared Library .Загрузите ваши скрипты в VCS, например Github / Bitbucket, и используйте Jenkins-Jobs для их выполнения.Они доступны для всех проектов / работ.

...