考虑在 Jenkins 中作为共享库加载的 repo 中的这个 groovy 文件:
/ vars
|
--- Utility.groovy
// Utility.groovy
def funcA() { ... }
def funcB() { ... }
在 Jenkinsfile 中:
// Jenkinsfile
@Library('LibName') _
pipeline {
...
steps {
script {
def util = new Utility()
util.funcA()
}
}
}
这工作正常。但是如果我尝试动态加载库:
// Jenkinsfile
pipeline {
...
steps {
script {
library 'LibName'
def util = new Utility()
}
}
}
那行不通...
有人可以就文档中的这句话解释一下吗:
Jenkins 中共享库的文档说:
在内部,vars 目录中的脚本按需实例化为单例。为方便起见,这允许在单个 .groovy 文件中定义多个方法。