如何将类从另一个文件导入/加载到jenkins文件中

时间:2019-05-30 21:56:24

标签: java jenkins groovy jenkins-pipeline jenkins-groovy

我需要导入在我的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){
        ...
    }
}

我想摆脱该库命令,并以更简单的方式导入这些类来替换它。

0 个答案:

没有答案