我有一个扫描编译器警告的管道,最近注意到由于脚本安全性批准,发布命令无法执行Manage Jenkins中定义的groovy脚本。 投诉反对:
Groovy沙箱拒绝解析器GHS MULTI No-Wrap的解析脚本:脚本不允许使用方法java.util.regex.MatchResult group int。您需要在脚本审批UI中手动批准该调用。
所以我赞成它,但每次构建都会回来。这只影响我的自定义解析器。
我是否错误地使用了自定义解析器,或者这是一个问题脚本安全性?
Parser Regex:
^"+(.*)".*line\s(\d*):.*(error|warning)\s*#(.*):\s*(.*)$
Parser Script:
import hudson.plugins.warnings.parser.Warning
import hudson.plugins.analysis.util.model.Priority
String fileName = matcher.group(1)
String lineNumber = matcher.group(2)
String category = matcher.group(3)
String typeID = matcher.group(4)
String message = matcher.group(5)
if(category == "warning"){
return new Warning(fileName, Integer.parseInt(lineNumber), typeID,
category, message, Priority.NORMAL);
}
else if(category == "error"){
return new Warning(fileName, Integer.parseInt(lineNumber), typeID,
category, message, Priority.HIGH);
}
更新:我发现我收到的错误是由警告解析器生成的here
我找不到任何关于为什么或我可以做些什么来防止它抛出异常。
答案 0 :(得分:4)
我发现该问题与版本4.62上的警告插件发布有关。这是一个解决一些安全问题的版本。目前,恢复到4.60解决了这个问题。