配置sonarqube导出pdf分析报告
# 1、 下载sonar-pdf-plugin插件
下载地址:https://gitee.com/zzulj/sonar-pdf-plugin/releases
注意:需要下载对应的版本,不同版本可能会出现不兼容、未知的情况。
# 2、上传sonar-pdf-plugin插件
把下载好的插件放到Sonarqube安装目录的extensions/plugins目录下,重启Sonarqube服务即可。
# 3、配置PDF导出插件
服务重启后可以看到配置页如下,PDF report为添加插件后新增页签。
填入Sonarqube管理员的username和password并保存,需要将原分析项目删除并重新分析项目。
# 4、创建测试项目
这里我们创建一个新令牌用来测试。
注意:这里以go语言项目为例,因为我这边没有其他语言的项目,其他语言的项目请自行测试
# 5、执行SonarQube扫描
进入要分析项目的根目录
# 6、下载PDF
点击项目下"更多 -->> Download Pdf Report",(对原有项目进行sonar扫描后才能输出pdf,之前的扫描结果不能输出pdf)
# 7、错误问题汇总
1、出现 {"error":"Report is not available. At least one analysis is required after installing the plugin!"}
解决方法:重新扫描项目。
2、出现 Can't retrieve project info. Parent project node is empty. Authentication?
解决方法:版本下错了,下载SonarQube兼容的插件版本。
至此,Sonarqube导出PDF分析报告部署完毕。
3、# Sonar生成PDF错误Can‘t get Compute Engine task status.Retry..... HTTP error: 401
解决方法:这个应该是没有权限(很可能是你Admin修改账号密码的时候,你pdf没有修改) 点击配置-PDF Report-修改账号密码-保存
4、扫描java报告报错
在src和target相对路径下执行命令
sonar-scanner \
-Dsonar.projectKey=zhongyin-aibot \
-Dsonar.sources=src/main/java/ \
-Dsonar.java.binaries=target \
-Dsonar.host.url=http://1.95.83.242:18886/sonarqube \
-Dsonar.login=sqp_ebf199b3516da4c718b5ff99ad42e9809668ede2
2
3
4
5
6
5、pdf导出报错
11:06:53.815 INFO PDF report generated (see zhongyin-callout.pdf on build output directory) 11:06:53.818 INFO Uploading PDF to server... 11:06:54.094 WARN Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended. 11:06:54.095 ERROR Something went wrong storing the PDF at server side. Error: {"errors":[{"msg":"An error has occurred. Please contact your administrator"}]}
查看sonarqube的web日志发现,java报错无法在/opt/sonarqube/pdf-files内写入文件
解决方法:
docker exec -it -u root d24445aa8ec5 mkdir /opt/sonarqube/pdf-files docker exec -it -u root d24445aa8ec5 chmod -R 777 /opt/sonarqube/pdf-files