使用Jenkins管道共享库的自定义步骤中的共享库类

时间:2018-02-14 21:34:04

标签: jenkins jenkins-pipeline jenkins-shared-libraries

我正在为Jenkins管道设置一个共享库,并试图找出如何将共享库中的类导入到我正在编写的自定义步骤中。

这是目录结构的样子:

src
--jenny
----util
------Versioning.groovy
vars
--calculateVersion.groovy

Versioning.groovy文件定义了一些执行某些操作的静态帮助程序方法。

package jenny.util
class Versioner implements Serializable {
    static bool checkForValidVersion(version) {
        return true
    }
}

我想从calculateVersion.groovy这样的东西中调用这个方法:

def call(version) {
    return jenny.util.Versioner.checkForValidVersion(version)
}

这样我的声明性管道可以调用:     def valid = calculateVersion "1.0.0"

但我收到此错误No such property: jenny for class: calculateReleaseVersions

是否可以从vars中的文件引用共享库中的类来定义自定义步骤以及如何完成?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。至少对我们来说:

就像在普通的java(或groovy)中一样,我们将导入语句放入vars的groovy脚本中。在你的情况下,这将是:

import jenny.util.Versioner

def call(version) {
    return Versioner.checkForValidVersion(version)
}

我刚发现的另一件事:看起来类Versioner的文件名与类名Versioning.groovy不匹配。这可能是问题吗?

如果这不起作用,您可能希望升级管道插件版本。