我有一个詹金斯(Jenkins)工作,作为构建动作的一部分,我正在执行一个普通的脚本,例如脚本 A 。我正在尝试从脚本A 中执行 Test1 的方法。文件 A.groovy 和 Test1.groovy 都位于同一目录中。
每当我运行作业时,我都会遇到"unable to resolve class"
错误。
A.groovy
println "****************** TEST : START *******************************"
println " Environment Variable value is : "
new Test1().printEnv()
println "****************** TEST : END *******************************"
我正在使用Groovy 2.3.6。
Test1.groovy
class Test1{
def printEnv(){
println "****************** TEST inside Test1.groovy : START *******************************"
println "****************** TEST inside Test1.groovy : END *******************************"
}
}
错误:
unable to resolve class Test1
注意::当我从外部jenkins执行脚本时,此方法有效。只有当我尝试通过Jenkins执行它时,它才找不到类Test1。
我对此行为非常困惑。
那里有很多文章讨论如何解决"unable to resolve class Test1"
错误。但是似乎没有一个适用于我的情况,因为从詹金斯家族以外的人打来的电话就可以了。
我相信我已经提供了所有可能的信息。不过,如有需要,请随时询问更多信息。
答案 0 :(得分:0)
如果您使用的是Jenkins管道,则需要加载辅助Groovy文件。您可以找到有关如何将groovy源文件用于管道here的文档。
对于您而言,您可以执行以下操作:
A.groovy
def test1 = load 'Test1.groovy'
test1.printEnv()
Test1.groovy
class Test1 {
def printEnv() {
// TODO
}
}
return new Test1()
请注意文档中解释的Test1.groovy中的return
。
希望有帮助