我有多行脚本
sh """
SCRIPT_BRANCH=${SCRIPT_BRANCH:-develop}
curl -o ${LIQUIBASE_CI_SCRIPT} -H "Authorization: token ${GITHUB_AUTH_TOKEN}" --header ${SCRIPT_BRANCH}/src/shell/branch_cut_liquibase_gen.sh
chmod +x ${LIQUIBASE_CI_SCRIPT}
curl -o ${LIQUIBASE_GEN_SCRIPT} -H "Authorization: token ${GITHUB_AUTH_TOKEN}" --header ${SCRIPT_BRANCH}/src/shell/liquibase_generation.sh
chmod +x ${LIQUIBASE_GEN_SCRIPT}
curl -o ${LIQUIBASE_TRANSFORM_SCRIPT} ${SCRIPT_BRANCH}/src/python/liquibase_transform.py
chmod +x ${LIQUIBASE_TRANSFORM_SCRIPT}
${LIQUIBASE_CI_SCRIPT}
""".stripMargin()
email(${EMAIL}, ${DEFAULT_CONTENT})
def build = bareBuild() {
buildAction = branchCutAction
}
就像在我的常规文件中一样。 jenkins正在调用它,但出现此错误。
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: java.lang.String.negative() is applicable for argument types: () values: []Possible solutions: notify(), normalize(), next()
我真是茫然,为什么会这样。我已经浏览过类似的问题,但似乎与我的问题不符
答案 0 :(得分:0)
您需要在stripMargin()
之前调用sh
,从而将它们分成两个代码块。
def cmd = """
SCRIPT_BRANCH=${SCRIPT_BRANCH:-develop}
curl -o ${LIQUIBASE_CI_SCRIPT} -H "Authorization: token ${GITHUB_AUTH_TOKEN}" --header ${SCRIPT_BRANCH}/src/shell/branch_cut_liquibase_gen.sh
chmod +x ${LIQUIBASE_CI_SCRIPT}
curl -o ${LIQUIBASE_GEN_SCRIPT} -H "Authorization: token ${GITHUB_AUTH_TOKEN}" --header ${SCRIPT_BRANCH}/src/shell/liquibase_generation.sh
chmod +x ${LIQUIBASE_GEN_SCRIPT}
curl -o ${LIQUIBASE_TRANSFORM_SCRIPT} ${SCRIPT_BRANCH}/src/python/liquibase_transform.py
chmod +x ${LIQUIBASE_TRANSFORM_SCRIPT}
${LIQUIBASE_CI_SCRIPT}
"""
sh "${cmd}"
email("${EMAIL}", "${DEFAULT_CONTENT}")