groovy 有没有一种方法可以显式地声明要使用哪个Jenkins库文件?

wnvonmuf  于 2023-08-02  发布在  Jenkins
关注(0)|答案(1)|浏览(148)

我有一个加载2个共享库的管道

@Libray(['sharedlib1@master', 'sharedlib2@trunk'])_

字符串
问题是两个管道都有一个文件
var/configuration/config.yaml
当我执行类似globalConfig = libraryResource 'var/configuration/config.yaml'的操作时,我如何明确地声明它应该从'sharedlib 2'读取?
当前语法给出了一个'ERROR: Library resource var/configuration/config.yaml ambiguous among libraries [sharedlib1, sharedlib2]'

5gfr0r5j

5gfr0r5j1#

libraryResource步骤目前不支持指定在多个库中存在相同资源时应从哪个库加载资源。
我可以看到两种方法来解决它:
1.重构共享库资源文件结构,并将所有内容放入库名称为

sharedlib1/var/configuration/config.yaml
sharedlib2/var/configuration/config.yaml

的基目录中。然后,您可以使用库特定路径从所需库加载资源:globalConfig = libraryResource('sharedlib2/var/configuration/config.yaml')
1.使用library步骤显式加载库并给它们取别名,然后使用@Library指定要使用的库:

library('sharedlib1@master') _
library identifier: 'sharedlib2@trunk', retriever: modernSCM(
  [$class: 'GitSCMSource',
   remote: 'https://github.com/my-org/sharedlib2.git']),
  changelog: false, poll: false, _ 

@Library('sharedlib2') _
globalConfig = libraryResource('var/configuration/config.yaml')

相关问题