我想将“ $ WORSKPACE”变量用于jenkins脚本调用的常规文件。但是在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")
谢谢 :)
这是由Jenkins进程内脚本批准引起的,以保护可能执行的恶意脚本。
如果您是管理员,请在“ 管理Jenkins” >“ 配置系统” >“ 全局管道库”中 注册管道代码,以避免这种情况。
参考文献: