Мне нужно иметь возможность создавать классы и использовать их в конвейере Дженкинса.
Допустим, у меня есть очень простой класс 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 (), но ни один из них не работал.
Любые идеи?
Редактирование общих библиотек:
У меня фактически есть общая библиотека, она используется несколькимикоманды и содержит очень конкретные данные, которые должны принадлежать командам, а не библиотеке.
Мы должны иметь возможность выбросить из библиотеки вещи, которые ей не принадлежат.Целью данной работы является облегчение указанной библиотеки неуниверсального кода.