如何使用字符串';t在groovy中以开头

如何使用字符串';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

我想在groovy中编写一个条件,其中分支名称不应等于development,也不应以release开头。我试过下面的代码。请帮我修一下

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'
}

您的代码很难以缩进的方式读取。您发布的代码是否生成错误?如果是,请将其包括在您的问题中。尾随逗号的语法有效吗?