我有一个想从文件夹级共享库导入的groovy类。
这是groovy类-
package abc.esmm
@Singleton
class Jiracommands implements Serializable
{
def steps
def jiracommandsTool
def Initialize(steps)
{
this.steps = steps
jiracommandsTool = "${steps.WORKSPACE}/JenkinsPipeline/UtilityScripts/bin/Jiracommands"
}
def AddFixVersionToJiraIssues(jiraIssues,fixVersion,overwriteFixVersionParam=false)
{
def overwriteFixVersion = "False"
if(overwriteFixVersionParam)
{
overwriteFixVersion = "True"
}
steps.sh(returnStdout: true,script: "${jiracommandsTool} -command addFixVersionToJira -jiraIssues \"${jiraIssues}\" -fixVersion ${fixVersion} -overwriteFixVersion ${overwriteFixVersion}").trim()
}
}
我尝试使用以下管道代码创建此类的实例:
@library('LotteryFolderPipelineLibs')
import abc.esmm.Jiracommands
node('All_LinuxBuildPool')
{
Jiracommands.instance.Initialize(this)
}
从Jenkins Global共享库调用时,此方法正常,但从文件夹级共享库调用时,则无效。全局共享库和文件夹级共享库指向相同的代码。从文件夹级共享库调用时,出现此错误:
CpsCallableinvocation{methodName=getInstance,call=null,receiver=class abc.esmm.Jiracommands,arguments=[]} Finished: FAILURE
有人知道为什么会这样吗?