在一个jenkins共享库中我可以做这样的事情:
Jenkins档案
@Library(value="my-shared-lib", changelog=false) _
jobGenerator {
notifier = [notifyEveryUnstableBuild: true]
}
共享库/变量/作业生成器.groovy
def call(body) {
println 'hi!'
}
为了更好地理解发生了什么,我在本地创建了两个groovy文件(完全没有引用jenkins):
示例/启动程序.groovy
jobGenerator {
s = 's'
}
示例/作业生成器.groovy
def call(body) {
println 'inside jobGenerator '
}
但当我用以下代码运行时:
groovy "/home/user/samples/launcher.groovy"
我得到:
Caught: groovy.lang.MissingMethodException: No signature of method: launcher.jobGenerator() is applicable for argument types: (launcher$_run_closure1) values: [launcher$_run_closure1@61019f59]
groovy.lang.MissingMethodException: No signature of method: launcher.jobGenerator() is applicable for argument types: (launcher$_run_closure1) values: [launcher$_run_closure1@61019f59]
at launcher.run(launcher.groovy:2)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
那么,上面的代码中有多少是jenkins/共享库特有的呢?是否有可能用 plain groovy编写类似上面的代码呢?
或者换句话说,我如何将上面的jenkins代码转换成普通的groovy?
1条答案
按热度按时间nvbavucw1#
恕我直言,以下是接近Jenkins正在做的事情
启动程序.groovy
./我的程式库/foo.groovy
./我的程式库/棒.groovy
第一个