我想从vars目录中调用src目录的方法,该方法可在IDE中使用。但这在詹金斯看来不起作用。
1。项目结构
├── src
│ └── foo
│ └── DemoClass.groovy
└── vars
└── varDemo.groovy
2。DemoClass.groovy的内容
#!groovy
package foo
class DemoClass {
def testDemoMethod() {
println("src DemoClass testDemoMethod")
}
}
3。varDemo.groovy的内容
#!groovy
import foo.DemoClass
def testVarsDemo() {
println("vars varDemo.groovy testVarsDemo")
}
def testVarsInvokeDemoMethod() {
println("vars varDemo.groovy testVarsInvokeDemoMethod")
def demoClass = new DemoClass()
demoClass.testDemoMethod()
println("end vars varDemo.groovy testVarsInvokeDemoMethod")
}
4.Jenkins管道
@Library('tools') _
varDemo.testVarsDemo()
varDemo.testVarsInvokeDemoMethod()
5。在管道中执行结果
> git checkout -f b6176268be99abe300d514e1703ff8a08e3ef8da
Commit message: "test"
> git rev-list --no-walk c1a50961228ca071d43134854548841a056e16c9 # timeout=10
[Pipeline] echo
vars varDemo.groovy testVarsDemo
[Pipeline] echo
vars varDemo.groovy testVarsInvokeDemoMethod
[Pipeline] echo
end vars varDemo.groovy testVarsInvokeDemoMethod
[Pipeline] End of Pipeline
似乎demoClass.testDemoMethod()
无效。为什么不能调用demoClass.testDemoMethod()
?如果要调用src
目录中的方法,该怎么办?谢谢!
答案 0 :(得分:0)
没有在本地重新实现代码段,这是我和您的在正常工作之间发现的一些差异。
JENKINSFILE
import foo.DemoClass
(new DemoClass(config, this)).testVarsInvokeDemoMethod()
共享库类
#!groovy
。希望这些区别之一是其为何未被调用的原因。