我想在shared Grovy library内访问currentBuild
,env
等全局变量。
示例1 (正常):
// vars/customStep.groovy
def call() {
echo env.myParameter
}
示例2 (不起作用):
// vars/customStep.groovy
class customStep implements Serializable {
def call() {
echo env.myParameter
}
}
示例3 (不起作用):
// src/com/acme/Lib.groovy
package com.acme
class Lib {
def someMethod() {
echo env.myParameter
}
}
我希望能够在任何一种情况下访问变量。我怎么能这样做?
答案 0 :(得分:1)
如果在类定义中使用env
变量,Groovy将尝试访问类变量 env
,而不是全局变量。我认为你需要创建一个构造函数并将env
变量传递给它。例如:
package com.acme
class Lib {
def env
}
并在您的管道中使用:
def library = Lib(env: env)
我从here
获取groovy构造函数语法