groovy jenkinsfile中意外标记'('附近有语法错误

piztneat  于 2022-11-01  发布在  Jenkins
关注(0)|答案(3)|浏览(264)

我的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命令行中使用括号”()”。我们应该如何转义这个特殊字符?

dsf9zpds

dsf9zpds1#

您应该使用'''进行shell脚本调用,并将参数作为字符串提供,因此您应该使用"。如下所示:
sh ''' mvn compile -f tools/pom.xml -Dlogin.user=ABC "-Dlogin.password=ENC(123+w)" '''

3z6pesqy

3z6pesqy2#

这可能是原因之一如果Jenkins****pipeline项目名称在其名称中包含大括号,如-〉**project-pipeline(develop)**如果您有任何shell命令,并且在使用项目名称的Jenkins中,则可能会看到此错误。sh(脚本:“cd ${项目管道(开发)}",返回状态:正确)

j0pj023g

j0pj023g3#

如果调用存储在Jenkins凭据(机密文件)中的shell脚本文件,则Jenkins作业中可能会出现 * 意外标记附近的语法错误 *。
例如,如果您最近从另一个Jenkins服务器导入了credentials.xml,则秘密文件可能解码错误,因此它不再包含纯文本。
尝试在运行/获取脚本文件之前打印脚本文件的内容,这可能会显示语法错误。

相关问题