从 Jenkins 管道中的 shell 访问一个 groovy 变量
Access a groovy variable from within shell in Jenkins pipeline
这个对我没有帮助
下面是groovy中的方法:
def analyze(repoName){
result= sh (
script: '''
cd ${WORKSPACE}/${BUILD_NUMBER}
cat > sonar-project.properties << EOF_$$
sonar.projectKey=ABC-$repoName
sonar.projectName=ABC
sonar.projectBaseDir=${WORKSPACE}/${BUILD_NUMBER}
EOF_$$
''',
returnStatus: true
) == 0
print "Creating file - Return status: ${result}"
}
下一行给出错误:
sonar.projectKey=ABC-$repoName
使用条目 sonar.projectKey=ABC-
创建属性文件
如何在 sh()
步骤中使用 groovy 变量?
您应该使用双引号进行字符串插值,因此只需将 '''
替换为 """
并将EOF_$$
更改为EOF_$$
您应该在以下位置用 $
对字符串插值和转义 $
使用双引号:
${WORKSPACE}
和 ${BUILD_NUMBER}
,您打算将它们用作 bash 环境变量,而不是 groovy 变量
EOF_$$
,你打算用它的字面意思
更改代码:
def analyze(repoName){
result= sh (
script: """
cd ${WORKSPACE}/${BUILD_NUMBER}
cat > sonar-project.properties << EOF_$$
sonar.projectKey=ABC-$repoName
sonar.projectName=ABC
sonar.projectBaseDir=${WORKSPACE}/${BUILD_NUMBER}
EOF_$$
""",
returnStatus: true
) == 0
print "Creating file - Return status: ${result}"
}
这个
下面是groovy中的方法:
def analyze(repoName){
result= sh (
script: '''
cd ${WORKSPACE}/${BUILD_NUMBER}
cat > sonar-project.properties << EOF_$$
sonar.projectKey=ABC-$repoName
sonar.projectName=ABC
sonar.projectBaseDir=${WORKSPACE}/${BUILD_NUMBER}
EOF_$$
''',
returnStatus: true
) == 0
print "Creating file - Return status: ${result}"
}
下一行给出错误:
sonar.projectKey=ABC-$repoName
使用条目 sonar.projectKey=ABC-
如何在 sh()
步骤中使用 groovy 变量?
您应该使用双引号进行字符串插值,因此只需将 '''
替换为 """
并将EOF_$$
更改为EOF_$$
您应该在以下位置用 $
对字符串插值和转义 $
使用双引号:
${WORKSPACE}
和${BUILD_NUMBER}
,您打算将它们用作 bash 环境变量,而不是 groovy 变量EOF_$$
,你打算用它的字面意思
更改代码:
def analyze(repoName){
result= sh (
script: """
cd ${WORKSPACE}/${BUILD_NUMBER}
cat > sonar-project.properties << EOF_$$
sonar.projectKey=ABC-$repoName
sonar.projectName=ABC
sonar.projectBaseDir=${WORKSPACE}/${BUILD_NUMBER}
EOF_$$
""",
returnStatus: true
) == 0
print "Creating file - Return status: ${result}"
}