Общая библиотека Jenkins: невозможно импортировать пакет `Нет такого свойства` - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть файл, который динамически загружает библиотеку, как это

def lib=library(identifier: 'pipeline-core@master', retriever: modernSCM(
  [$class: 'GitSCMSource',
       remote: 'https://scm.intra/scm/jenins/pipeline-core.git',
       credentialsId: 'bitbucket.service.user'
])).ch.swisscard.pipeline.util.Utils

defaultCdPipeline {}

, тогда как defaultCdPipeline - это определение конвейера jenkins, которое использует класс Utils, такой как

import ch.mycompany.jenkins.pipeline.util.*
...
Utils.isRunning()
...

.Структура файла такова:

+- src
|  +- mycompany
|     +- jenkins
|        +- pipeline
|           +- util
|              +- Utils.groovy
|              +- Commons.groovy
+- vars
   +- defaultCdPipeline.groovy

Это работает до сих пор.Когда я смотрю на динамический импорт моего понимания, я бы использовал lib, поэтому lib.isRunning(), а не Utils.isRunning(), но это приводит к следующей ошибке

No such property: lib for class: groovy.lang.Binding

Почему?В дальнейшем я хотел бы использовать как Utils.groovy, так и Commons.groovy.Это я бы "предварительно выбрал пакет", как это показано в примере , таким образом, используя только .ch.swisscard.pipeline.util

def lib=library(identifier: 'pipeline-core@master', retriever: modernSCM(
  [$class: 'GitSCMSource',
       remote: 'https://scm.intra/scm/jenins/pipeline-core.git',
       credentialsId: 'bitbucket.service.user'
])).ch.swisscard.pipeline.util

defaultCdPipeline {}

Это, однако, также не работает как вызов lib.Uils.isRunning()

...
   stages {
      stage('Deployment') {
         steps {
            script {
               lib.Uils.isRunning()`
...

выдает то же исключение, как упомянуто выше

No such property: lib for class: groovy.lang.Binding

Содержимое, если Utils

package ch.mycompany.jenkins.pipeline.util

class Utils implements Serializable {

    @NonCPS
    def static String isRunning() {
        return "isRunning()"
    }
}

Может кто-нибудь пролить свет на этовыпуск и скажите мне, как я могу правильно загрузить пакет / несколько классов?

...