我需要导入在我的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){
...
}
}
我想摆脱该库命令,并以更简单的方式导入这些类来替换它。