关于Jenkins中每次构建修改参数默认值的解决办法
关于Jenkins中每次构建修改参数默认值的解决办法一)安装插件安装Groovy Postbuild 插件。二)写入代码import hudson.model.*manager.listener.logger.println("开始执行Groovy Postbuild")def paramsDef = manager.build.getParent().getProperty(Parameters
·
关于Jenkins中每次构建修改参数默认值的解决办法
解决方法有两个(推荐方案二!!!):
1、方案一:安装Groovy Postbuild插件,自己写代码,缺点是局限性比较大,适用于参数类型是string的,并不适用于bool、choice类型,因为这些类型的默认值被readonly修饰。(但此方案有一个优点,就是假如你需要用 Extended Choice Parameter Plug-In 这个多选参数插件,该方案可以修改其默认值)
2、方案二:安装Persistent Parameter Plugin,适用范围广,string、text、bool、choice也都适用。
我是两个方案混合使用
方案一
一)安装插件
安装Groovy Postbuild 插件。
二)写入代码
import hudson.model.*
manager.listener.logger.println("开始执行Groovy Postbuild")
def paramsDef = manager.build.getParent().getProperty(ParametersDefinitionProperty.class)
if (paramsDef) {
paramsDef.parameterDefinitions.each{ param ->
manager.listener.logger.print("parameter ${param.name},orginal default value was ${param.defaultValue}.")
try{
param.defaultValue = manager.build.buildVariableResolver.resolve(param.name).replace('"','')
manager.listener.logger.println("After ${param.name} has be Changed,new default value was ${param.defaultValue}")
}catch(Exception e){
manager.listener.logger.println("There is a Exception when Assign new value to default value of parameter ${param.name} ")
manager.listener.logger.println(e.getMessage())
manager.listener.logger.println(e.printStackTrace())
}
}
}
方案二
一)安装插件
安装Persistent Parameter Plugin插件。
一)配置参数
参数化构件中,选择Persistent类型
更多推荐
已为社区贡献1条内容
所有评论(0)