在管道Jenkinsfile中导入groovy类

时间:2019-02-08 18:37:06

标签: jenkins groovy jenkins-pipeline

我需要能够创建类并在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;

在JenkinsFile中:

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

失败 我尝试了几种方法,使用了程序包名称,使用了Toto.new()语法,但没有一个奏效。

有什么想法吗?

编辑共享库:

我实际上有一个共享库,它由多个团队使用,并且包含非常具体的数据,这些数据应该由团队拥有,而不是由图书馆拥有。

我们需要能够将不属于它的东西放出图书馆。这项工作的目的是减轻所说的非通用代码库。

1 个答案:

答案 0 :(得分:0)

您可以使用Shared Library Feature。将您的脚本上传到Github / Bitbucket之类的VCS中,并使用Jenkins-Jobs执行它们。它们适用于所有项目/职位。