Variables 定义一个变量,如果在定义过程中出现问题,则将其设置为默认值
我的Variables 定义一个变量,如果在定义过程中出现问题,则将其设置为默认值,variables,gradle,null,default-value,Variables,Gradle,Null,Default Value,我的build.gradle中有以下代码 version.properties中的内容包括: buildVersion=1.2.3 渐变构建期间,$v变量的值如下:1.2.3 JENKINS build中$artifactoryVersion变量的值为:1.2.3.1,1.2.3.2,1.2.3.x。。。以此类推,第四位数字是Jenkins构建期间gradle构建脚本可用的Jenkins构建号 但是,当我在桌面上运行这个build.gradle时,如果我的环境变量中没有可用的build\u
build.gradle中有以下代码
version.properties中的内容包括:
buildVersion=1.2.3
- 渐变构建期间,
$v
变量的值如下:1.2.3
- JENKINS build中
$artifactoryVersion
变量的值为:1.2.3.1,1.2.3.2,1.2.3.x。。。以此类推,第四位数字是Jenkins构建期间gradle构建脚本可用的Jenkins构建号
但是,当我在桌面上运行这个build.gradle
时,如果我的环境变量中没有可用的build\u NUMBER变量或未设置该变量,我会收到一个错误,说trim()
不能在null上工作。(因为桌面/本地版本没有版本号)
我正试图找到一种方法,即
我应该在脚本中编写什么代码,以便如果BUILD\u NUMBER
不可用,那么它将设置jenkinsBuild=“0”
(硬编码),而不是因为错误而导致gradle构建处理失败,否则,选择在Jenkins构建期间获得的内容
例如:在Bash中,我们设置一个变量var1=${BUILD_NUMBER:-“0”}
,该变量将var1
设置为有效的Jenkins构建编号(如果可用)并设置为值,否则如果为NULL,则设置为var1=“0”
我不想让每个开发人员/用户在某个属性文件中设置此BUILD\u NUMBER
。我想要的是,如果这个变量不存在,那么代码应该在jenkinsBuilds变量中放入“0”
,并且在桌面构建期间不会出错。我知道在詹金斯建造期间,它运行良好
您只需要一些常规Java/Groovy代码:
def jenkinsBuild = System.getenv("BUILD_NUMBER") ?: "0"
上面的代码使用Groovy的“elvis”运算符,是以下代码的简写,它使用Java的三元运算符:
def buildNumber = System.getenv("BUILD_NUMBER")
def jenkinsBuild = buildNumber != null ? buildNumber : "0"
下面是使用Java普通对象(JDK8)的答案:
公共类示例{
私有字符串区域;
私家串果;
公共样本(){
region=System.getenv().getOrDefault(“region”,null);
水果=System.getenv().getOrDefault(“水果”、“苹果”);
}
}
使用该插件,您可以获取和设置构建参数
例如,在“将环境变量注入构建过程”下,添加Groovy脚本,例如:
def paramsMap = [:]
def build = Thread.currentThread().executable
def my_var = build.getEnvVars()["MY_PARAM"]
if (!my_var) paramsMap.put("MY_PARAM", "default value")
// Return parameters map
out.println("Injecting parameters:\n" + paramsMap)
return paramsMap
def paramsMap = [:]
def build = Thread.currentThread().executable
def my_var = build.getEnvVars()["MY_PARAM"]
if (!my_var) paramsMap.put("MY_PARAM", "default value")
// Return parameters map
out.println("Injecting parameters:\n" + paramsMap)
return paramsMap