我需要能够创建类并在 Jenkins 管道中使用它们。
假设我有一个非常简单的 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;
在 Jenkins 文件中:
node('mynode') {
external= load 'Project\Buildfiles\Jenkins\com\external\ExternalClasses.groovy'
toto = new Toto();
tata = new Tata();
}
这失败了 我尝试了几种方法,使用了包名称,使用了 Toto.new() 语法,但没有一个有效。
有什么想法吗?
编辑共享库:
我实际上有一个共享库,它被多个团队使用,并且包含非常具体的数据,这些数据应该由团队而不是库拥有。
我们需要能够将不属于图书馆的东西移出图书馆。这项工作的目的是减轻上述非通用代码库的影响。
最佳答案
您可以使用Shared Library Feature 。将脚本上传到 Github/Bitbucket 等 VCS 中,并使用 Jenkins-Jobs 来执行它们。它们适用于所有项目/工作。
关于jenkins - 在管道 Jenkinsfile 中导入 groovy 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598393/