Jenkins Pipeline无法发布Cobertura报告的问题求助
解决Jenkins Cobertura 1.16插件发布覆盖率报告时的SecurityException问题
问题根源
报错中的SecurityException是Jenkins Security-144安全限制引发的:该规则禁止代理节点向控制器发送hudson.FilePath$Mkdirs请求,而Cobertura 1.16版本的源码着色(SourceCodePainter)逻辑中存在这类违规调用,触发了限制。
解决方案
先重启Jenkins
你已按照提示勾选了对应安全选项,但该配置必须重启Jenkins才能生效。未重启的话新配置不会加载,问题无法解决。升级Cobertura插件(推荐)
Cobertura插件在1.17及后续版本中已修复了这个安全违规问题,替换了触发限制的文件目录创建逻辑,从根源上解决问题。操作步骤:- 进入Jenkins插件管理中心
- 找到Cobertura插件,升级到最新稳定版(至少1.17+)
- 升级完成后重启Jenkins
临时应急方案(不推荐)
如果暂时无法升级或重启,可在Pipeline中关闭Cobertura的源码渲染功能,避免触发报错。修改Pipeline中的cobertura步骤如下:cobertura( coberturaReportFile: '**/cobertura.xml', // 禁用源码着色相关逻辑 sourcePath: '', ignoreFailedTests: true )注意:此方案会丢失带覆盖率标记的源码查看功能,仅能查看覆盖率汇总报告。
内容的提问来源于stack exchange,提问作者Elydasian
相关产品推荐
相关产品推荐

