将模块导入DSL作业

时间:2018-10-22 18:27:42

标签: jenkins-pipeline jenkins-job-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()

这似乎很好。但是,例如,如果我尝试使用凭据插件中的模块,即

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

那是为什么?有解决方法,还是我应该使用其他方法?

1 个答案:

答案 0 :(得分:1)

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

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

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