Jenkinsfile:SSH 命令中的变量不是 "parsed"

Jenkinsfile: varibale not "parsed" inside SSH command

我在 JenkinfFile 中定义了我的工件的一个版本,该版本已得到很好的解析。我用变量的输出测试了这个。但是,它不会在 SSH 命令期间被解析。什么是正确的语法?

        version = sh (
        script: './gradlew -q printVersion',
        returnStdout: true
    ).trim()

    echo "$version" 

    sshPut remote: remote, from: 'build/libs/core-${version}-all.jar', into: '/opt/microservices/core.jar'

输出:

1.0.6 java.lang.IllegalArgumentException: /jenkins/workspace/core/build/libs/core-${version}-all.jar 不存在。

Groovy中的字符串插值需要使用双引号:-

sshPut remote: remote, from: "build/libs/core-${version}-all.jar", into: '/opt/microservices/core.jar'

这就是为什么您的 echo 语句工作正常,但您的 sshPut 却不行。

参见:https://groovy-lang.org/syntax.html#_string_interpolation