具有相同功能的多个jenkins共享库

时间:2018-07-24 18:27:28

标签: jenkins jenkins-pipeline

我试图在一个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.helloWorldB.helloWorld

编辑:本例中的helloWorld将来自vars文件夹。即使两个库的vars文件夹中都存在相同的函数,我也想调用它。

1 个答案:

答案 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()