Импорт модуля в задание DSL - PullRequest
       4

Импорт модуля в задание DSL

0 голосов
/ 22 октября 2018

Я пишу вспомогательную функцию для задания 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 голосов
/ 05 января 2019

Вы не можете импортировать классы из других плагинов в скриптах Job DSL.

Но в зависимости от того, что вы пытаетесь сделать, существуют другие способы взаимодействия с классами из других плагинов.CredentialsProvider является Descriptor.Вы можете использовать экземпляр Jenkins для поиска любого экземпляра дескриптора:

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