侧边栏壁纸
博主头像
泰生活杂记博主等级

行动起来,活在当下

  • 累计撰写 6 篇文章
  • 累计创建 8 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

SonarQube部署与应用 Step By Step

阿泰
2025-04-28 / 0 评论 / 0 点赞 / 18 阅读 / 19008 字

写在最前面的话

请务必/尽量选用跟自己项目使用的JDK版本一致的SonarQube。

我使用的是最新版本,依赖JDK21,而我的项目用的是JDK8。走了不少弯路。

一、部署篇

本次部署在Windows 10 系统。

1.1 JDK 17+

本次使用SonarQube需要JDK 21,下载地址:https://www.oracle.com/java/technologies/downloads/#jdk21-windows

一步步安装完成后,配置环境变量 JAVA_HOME

1.2 SonarQube

本次安装的版本是免费的社区版 25.4.0.105899,下载地址:https://www.sonarsource.com/products/sonarqube/downloads/

安装后解压即可。

1.3 Sonar报告pdf生成插件

sonar-pdf-plugin 最新版本 4.0.1,下载地址:https://gitee.com/zzulj/sonar-pdf-plugin/releases

该插件最新版本更新于2年前,4.0.1不支持本次的SonarQube版本。

我根据Gitee信息修改了一个4.0.2版本,可以支持本版本的SonarQube。

/sonar-pdfreport-plugin-4.0.2.jar

把jar文件放到SonarQube的插件目录 C:\tools\sonarqube-25.4.0.105899\extensions\plugins

1.4 Maven 3.9.9

下载地址:https://maven.apache.org/download.cgi

1.5 PATH变量配置

在PATH中增加 JDK和Marven的执行路径

二、运行与配置

1、启动SonarQube

进入到SonarQube的解压目录,双击startsonar.bat执行,

如果出现如下窗口,则表示启动成功,此时会启动一个9000端口的Web应用。

1745827444861.png

如果cmd窗口一闪而过,大概率是因为JDK版本太低,或者JAVA_HOME变量没有配置或PATH变量没有配置。

2、登录管理界面

访问地址:http://localhost:9000,初始的账号密码都是admin

3、配置插件

1)先安装一个中文插件方便管理。插件仅针对管理界面,实际的扫描内容还是英文的

1745829604848.png

需要重启Server才能生效。

2)sonar-pdf-plugin 之前已经放置到插件目录,系统默认是安装好了的。

但是需要做一个配置

用户名和密码就是登录进系统的用户名和密码,默认都是admin

注意每个项目修改会,都要点【保存】按钮进行保存。

如果后续扫描过程中,有如下报错提示,大概率是因为上面没有配置对

至此,基本的配置就完成了。

三、配置扫描项目

第1步,

第2步,

第3步,

第4步,

第5步,

第6步,

第7步,

至此配置完成,拷贝上述文本。

四、扫描项目

1、进入代扫描项目

启动cmd窗口,进入要扫描的项目所在的路径。pom文件所在的路径。

2、执行mvn指令

mvn clean verify sonar:sonar \
  -Dsonar.projectKey=testProject \
  -Dsonar.projectName='测试项目' \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.token=sqp_a2b08263a8f321bc8270097d4768ce02654ffc99

执行后会报错,其因为上述命令换行后在Windows下执行是不支持的。

稍微改一下,把内容都挪到一行上,再次执行,等上一会。

mvn clean verify sonar:sonar  -Dsonar.projectKey=testProject   -Dsonar.projectName='测试项目'   -Dsonar.host.url=http://localhost:9000   -Dsonar.token=sqp_a2b08263a8f321bc8270097d4768ce02654ffc99

正常执行后效果如下:

如果有异常就会出现类似前面的红色ERROR提示。不过部分情况下,出现ERROR也可能完成扫描。此时,我们切换回Web管理界面,可以看到“测试项目”已经扫描完成。

3、查看扫描结果

如果没有扫描或扫描失败,就会类似下面一个项目【ifrs-main】显示空白。

点击【测试项目】就可以查看扫描详情了。

在下一界面上点击红色工具条区域,就可以查看具体内容了

4、导出pdf报告

本来对pdf报告是给予厚望的,但是却失望了~~

有一定参考性,但是离一份正式的报告还很远。

但是,扫描结果本身的内容还是足够丰富的,进一步组织极氪。

至此,扫描完成。

五、其他

1、pdf插件4.0.2修改之处

修复方法来源:https://gitee.com/zzulj/sonar-pdf-plugin/issues/IAGECX

2、后续待深入之处

上述pdf插件虽然不好用,但是也给了我一些启示,就是一个外挂条件怎么读取并组织扫描信息的。说明SonarQube提供了API给开发者使用。

再查询时发现,这些信息本身是存储在数据库中的,可以指定安装在外部数据库,默认是安装在内置的一个H2数据库里。

我用客户端连上这个数据库简单看了下,

六、感谢

1、本文的主要内容参考自 CSDN博主 【程序员小肖】的文章 《SonarQube安全扫描

2、pdf插件 https://gitee.com/zzulj/sonar-pdf-plugin

0

评论区