如何使用字符串';t在groovy中以开头
我想在groovy中编写一个条件,其中分支名称不应等于development,也不应以release开头。我试过下面的代码。请帮我修一下如何使用字符串';t在groovy中以开头,groovy,jenkins-pipeline,Groovy,Jenkins Pipeline,我想在groovy中编写一个条件,其中分支名称不应等于development,也不应以release开头。我试过下面的代码。请帮我修一下 if ("${BRANCH_NAME}"!="develop" ||! ("${BRANCH_NAME}".startsWith("release"))) { properties( [ buildDiscarder(logRotator(daysToKeepStr: '60', numToKeepStr
if ("${BRANCH_NAME}"!="develop" ||! ("${BRANCH_NAME}".startsWith("release")))
{
properties(
[
buildDiscarder(logRotator(daysToKeepStr: '60', numToKeepStr: '7')),
]
)
}
主要问题:
您正在使用或而不是AND。这意味着这两个条件必须同时为真,以避免进入代码块。我认为你真正想要的,如果其中一个是真的,跳过
我还改变了一般语法。GString是不必要的,如果它只有一个变量,就不需要进行字符串插值。如果没有变量,字符串不需要是GString。因此,删除了分支名称的引号,并将其他引号转换为常规字符串(单引号)
还有一个注意事项,我认为你不应该把整个管道都放在这个if语句中。将属性放在外部并阻止逻辑执行可能很好
#!groovy
if (env.BRANCH_NAME != 'develop' && !(env.BRANCH_NAME).startsWith('release')) {
properties([
buildDiscarder(logRotator(daysToKeepStr: '60', numToKeepStr: '7')),
])
echo 'here'
}
您的代码很难以缩进的方式读取。您发布的代码是否生成错误?如果是,请将其包括在您的问题中。尾随逗号的语法有效吗?