我正在为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中的文件引用共享库中的类来定义自定义步骤以及如何完成?
答案 0 :(得分:2)
是的,这是可能的。至少对我们来说:
就像在普通的java(或groovy)中一样,我们将导入语句放入vars
的groovy脚本中。在你的情况下,这将是:
import jenny.util.Versioner
def call(version) {
return Versioner.checkForValidVersion(version)
}
我刚发现的另一件事:看起来类Versioner
的文件名与类名Versioning.groovy
不匹配。这可能是问题吗?
如果这不起作用,您可能希望升级管道插件版本。