我试图在一个Jenkins文件中导入多个jenkins库,但是遇到了“如果两个库共享一个函数怎么办?”的问题。例如,如果我有库A和库B,并且这两个库都具有函数helloWorld
,那么如何在Jenkinsfile中正确区分这两个函数?
假设我正在导入这样的库:
#!groovy
import ...
import ...
import ...
library identifier: 'A@master', retriever: modernSCM(
[$class: 'GitSCMSource',
remote: '<the github link for A>'])
library identifier: 'B@master', retriever: modernSCM(
[$class: 'GitSCMSource',
remote: '<the github link for B>'])
// rest of the jenkinsfile
如何使用两个库中的helloWorld
函数?是否可以在此Jenkins文件中调用A.helloWorld
和B.helloWorld
?
编辑:本例中的helloWorld将来自vars
文件夹。即使两个库的vars
文件夹中都存在相同的函数,我也想调用它。
答案 0 :(得分:1)
根据Jenkins共享库文档,在§Loading Libraries Dynamically部分中,您可以找到可以将已加载的库分配给变量,然后可以将该变量用作限定符:
def A = library identifier: 'A@master', retriever: modernSCM(
[$class: 'GitSCMSource', remote: '<the github link for A>']
)
def B = library identifier: 'B@master', retriever: modernSCM(
[$class: 'GitSCMSource', remote: '<the github link for B>']
)
A.helloWorld()
B.helloWorld()