我的jenkins groovy脚本中有一个功能,就像这样:
def build(字符串p1,字符串p2,字符串p3){
script.stage('Build') {
try {
script.sh "./gradlew -Pversion='${currentVersion}' clean build"
} finally {
script.step([$class: 'JacocoPublisher', classPattern: p1, exclusionPattern: p2, execPattern: p3])
}
}
}
那么我该如何处理项目的jenkins文件未将任何参数传递给此函数的情况?我试图通过条件条件检查这些参数是否为空/空,但这在jenkins的控制台输出中给了我以下错误:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method groovy.lang.GroovyObject invokeMethod java.lang.String java.lang.Object
答案 0 :(得分:1)
您需要将jenkins脚本批准中的方法调用列入白名单 https://jenkins.io/doc/book/managing/script-approval/
答案 1 :(得分:0)
我试图像这样设置默认值:
def build(String p1='', String p2='**/classes', String p3='**/**.exec')
工作了! :)