【发布时间】:2021-05-10 22:07:46
【问题描述】:
我正在尝试为 jenkins 创建共享库来构建应用程序。当我尝试将 json 字符串从 groovy 函数传递到 shell 块以执行构建命令时。而 json 字符串不带引号传递。如何保留引号。
stage('build app') {
steps {
script {
build project:"TestApp.xcodeproj",
workspace: "TestApp.xcworkspace",
scheme: "Develop",
config: "Debug",
target: "{ "TestApp": { "info_plist": "TestApp/Info.plist", "profile_name": "Test App Debug (January 2021)", "app_id": "com.******.Debug" } }"
}
}
}
def build(Map buildParams) {
sh """#!/bin/bash -l
export XCODE_PROJ="${buildParams.project}"
export XCODE_WORKSPACE="${buildParams.workspace}"
export XCODE_BUILD_SCHEME="${buildParams.scheme}"
export XCODE_BUILD_CONFIGURATION="${buildParams.config}"
export XCODE_TARGET_JSON="${buildParams.target}"
#build App
fastlane build app
"""
}
期待 json 字符串,因为它在带有“引号”的 shell 块中。而得到错误期望'}'发现:.当我转义 json 字符串的引号时,获取没有“引号”的值
{ TestApp: { info_plist: TestApp/Info.plist, profile_name: Test App Debug (January 2021), app_id: com.******.Debug } }
这导致 fastlane 抛出错误无效令牌。如何在 shell 块变量中保留引号
【问题讨论】: