首页 > 解决方案 > 将模块导入 DSL 作业

问题描述

我正在为我的 Job-DSL Seed 工作编写一个辅助函数,即类似于util/WebHook.groovy

package util
import groovy.json.JsonSlurper

class WebHook {
  static void create() {
    def urls = new JsonSlurper().parseText(list_hooks.execute().text).url
[...]

然后在main.groovy

import util.WebHook
WebHook.create()

这似乎工作正常。但是,如果我尝试使用例如来自 Credentials Plugin 的模块,即

import com.cloudbees.plugins.credentials.CredentialsProvider

我收到一个错误:

处理 DSL 脚本 terraform.groovy
错误:启动失败:
工作区:/util/WebHook.groovy:5:无法解析类 com.cloudbees.plugins.credentials.CredentialsProvider
@ 第 5 行,第 1 列。
导入 com.cloudbees.plugins.credentials .CredentialsProvider

这是为什么?是否有解决方法,或者我应该使用不同的方法?

标签: jenkins-pipelinejenkins-job-dsl

解决方案


您不能从 Job DSL 脚本中的其他插件导入类。

但是根据您的尝试,还有其他方法可以与其他插件中的类进行交互。CredentialsProvider是一个Descriptor。您可以使用该Jenkins实例来查找任何描述符实例:

Jenkins.instance.getExtensionList('com.cloudbees.plugins.credentials.CredentialsProvider')

推荐阅读