在Jenkins共享库中使用多方法全局变量
考虑一下在一个repo中加载为Jenkins中的共享库的groovy文件:在Jenkins共享库中使用多方法全局变量,jenkins,jenkins-shared-libraries,Jenkins,Jenkins Shared Libraries,考虑一下在一个repo中加载为Jenkins中的共享库的groovy文件: / vars | --- Utility.groovy // Utility.groovy def funcA() { ... } def funcB() { ... } 在Jenkins文件中: // Jenkinsfile @Library('LibName') _ pipeline { ... steps { script { def util = new Utility()
/ vars
|
--- Utility.groovy
// Utility.groovy
def funcA() { ... }
def funcB() { ... }
在Jenkins文件中:
// 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文件中定义多个方法
动态加载Jenkins共享库有一些限制和挑战,因为: 使用src/目录中的类也是可能的,但更复杂。尽管@Library注释在编译之前准备脚本的“类路径”,但在遇到库步骤时,脚本已经编译完毕。因此,您不能从库中导入或“静态”引用类型。这是可以解释的 这个问题似乎有点类似