groovy 脚本中的 Jenkins 变量
Jenkins variable in groovy script
我想在 jenkins 脚本调用的 groovy 文件中使用“$WORSKPACE”变量。但是在 SO 上找到的所有解决方案都失败了:
// KO : Wks = build.getEnvironment(listener).get('WORKSPACE')
// KO : Wks = "${WORKSPACE}"
/* KO :
def thr = Thread.currentThread()
def build = thr?.executable
def envVarsMap = build.parent.builds[0].properties.get("WORKSPACE")
*/
// KO : def build = this.getProperty('binding').getVariable('build')
// KO : Wks = "%WORKSPACE%"
我收到的消息:
脚本不允许使用方法 groovy.lang.GroovyObject setProperty java.lang.String java.lang.Object (JenkinsHelper.name)。管理员可以决定是批准还是拒绝此签名。
是否知道要设置允许 Jenkins 脚本运行的代码或选项?
我的示例案例:
文件 JenkinsHelper.groovy :
class JenkinsHelper {
def init(String sln) {
Wks = "%WORKSPACE%"
}
}
return new JenkinsHelper();
从詹金斯脚本调用:
def helper = load 'C:/.../test.groovy'
helper.init("Mon SLN")
谢谢:)
您应该使用 groovy 风格的环境变量格式,而不是 Windows 风格的格式:
class JenkinsHelper {
def init(String sln) {
Wks = "${WORSKPACE}"
}
}
这是由 Jenkins In-process Script Approval 引起的,作为对可能执行恶意脚本的保护。
如果您是管理员,请在 Manage Jenkins > Configure System > Global Pipeline 中注册您的管道代码图书馆 来避免这种情况。
参考文献:
我想在 jenkins 脚本调用的 groovy 文件中使用“$WORSKPACE”变量。但是在 SO 上找到的所有解决方案都失败了:
// KO : Wks = build.getEnvironment(listener).get('WORKSPACE')
// KO : Wks = "${WORKSPACE}"
/* KO :
def thr = Thread.currentThread()
def build = thr?.executable
def envVarsMap = build.parent.builds[0].properties.get("WORKSPACE")
*/
// KO : def build = this.getProperty('binding').getVariable('build')
// KO : Wks = "%WORKSPACE%"
我收到的消息: 脚本不允许使用方法 groovy.lang.GroovyObject setProperty java.lang.String java.lang.Object (JenkinsHelper.name)。管理员可以决定是批准还是拒绝此签名。
是否知道要设置允许 Jenkins 脚本运行的代码或选项?
我的示例案例:
文件 JenkinsHelper.groovy :
class JenkinsHelper {
def init(String sln) {
Wks = "%WORKSPACE%"
}
}
return new JenkinsHelper();
从詹金斯脚本调用:
def helper = load 'C:/.../test.groovy'
helper.init("Mon SLN")
谢谢:)
您应该使用 groovy 风格的环境变量格式,而不是 Windows 风格的格式:
class JenkinsHelper {
def init(String sln) {
Wks = "${WORSKPACE}"
}
}
这是由 Jenkins In-process Script Approval 引起的,作为对可能执行恶意脚本的保护。
如果您是管理员,请在 Manage Jenkins > Configure System > Global Pipeline 中注册您的管道代码图书馆 来避免这种情况。
参考文献: