jenkinsfile中意外令牌`('附近的语法错误

时间:2019-05-17 06:56:13

标签: shell groovy jenkins-pipeline

我的jenkinsfile如下:

    pipeline {
    agent any

    stages {

        stage('Checkout Source') {
            steps {
                echo '====stage 1: SCM Poll Stage===='
                checkout scm
            }
        }

        stage('build') {
            steps {
                sh 'mvn --version'
                sh 'mvn compile -f tools/pom.xml -Dlogin.user=ABC -Dlogin.password=ENC(123+w)'
            }
        }
    }
}

我在 ENC(123 + w)

附近出现错误

控制台输出中的错误是

/var/lib/jenkins/workspace/firstPipeline_feature_Ticket-1@tmp/durable-2b07c016/script.sh: line 1: syntax error near unexpected token `('

我想知道我们是否不能在 sh 命令行中使用括号“ ()”。我们应该如何转义这些特殊字符?

2 个答案:

答案 0 :(得分:0)

您应该使用'''进行Shell脚本调用,并将参数指定为字符串,以便您使用"。像这样:

sh ''' mvn compile -f tools/pom.xml -Dlogin.user=ABC "-Dlogin.password=ENC(123+w)" '''

答案 1 :(得分:0)

这可能是原因之一 如果 Jenkins 管道项目名称的名称中包含大括号 就像-> 项目管道(开发) 如果您有任何Shell命令,并且在使用项目名称的Jenkins中,则可能会看到此错误。 sh(脚本:“ cd $ {project-pipeline(develop)}”,returnStatus:true)