我有一个Jenkins作业,作为构建操作的一部分,我正在执行一个groovy脚本,比如脚本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"
错误。但似乎没有一个适用于我的情况,因为电话是好的,当它是从詹金斯以外。
我相信我已经提供了所有我能提供的信息。尽管如此,如果需要的话,请随时索取更多的信息。
发布于 2019-06-18 07:40:23
如果使用Jenkins管道,则需要加载辅助groovy文件。您可以找到关于如何在管道这里中使用groovy源文件的文档。
在你的例子中,你可以这样做:
A.groovy
def test1 = load 'Test1.groovy'
test1.printEnv()
Test1.groovy
class Test1 {
def printEnv() {
// TODO
}
}
return new Test1()
注意在文档中解释的Test1.groovy中的return
。
希望这有帮助
https://stackoverflow.com/questions/56650075
复制相似问题