Как импортировать / загружать классы в файл jenkins из другого файла - PullRequest
1 голос
/ 31 мая 2019

Мне нужно импортировать пользовательские классы, определенные вне моего jenkinsfile.Эти классы имеют конструкторы, которые требуют параметров.Я уже пытался использовать load () для каждого из файлов классов, но, похоже, это работает только для файлов сценариев, которые просто определяют статические методы.Когда я попытался использовать это для загрузки моих файлов классов, он выдал ошибку, что не смог найти метод <init>.

В настоящее время у меня есть способ импорта этих классов, который работает, но он требует повторного клонированияхранилище в виде библиотеки (код ниже).Я хотел бы отойти от этого, так как он неэффективен и кажется, что в этом нет необходимости.

текущая рабочая (но не очень) реализация:

Jenkinsfile:

lib = library(identifier: "<libraryName>@${env.currentBranch}",
                      retriever: modernSCM([$class: 'GitSCMSource',
                      credentialsId: <credentialsId>,
                      id: '<id>',
                      remote: env.projectRemote,
                      traits: [[$class: 'jenkins.plugins.git.traits.BranchDiscoveryTrait']]])).com.company.jenkins.sdk

def git = lib.Git.new(this, currentStage, currentStep)
...

src / com / company / jenkins / sdk / Git.groovy:

package com.company.jenkins.sdk.Git

class Git implements Serializable {
    def script
    def stage
    def step

    Git(script, stage, step){
        ...
    }
}

Я бы хотел избавиться от этой команды библиотеки и заменить ее более простым способом импорта этих классов.

...