自己搭建Sonar代码扫描
必要软件
1、SonarQube 下载地址:https://www.sonarqube.org/downloads/。
因为新版本必须安装java11,且不支持mysql 所以本文选择低版本:SonarQube 7.7
下载界面如下:
选择社区版本即可
2、sonar-scanner的下载地址:
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
下载界面如下:
选择4.3.0.2102版本,因为我在windows上搭建,所以选择windows安装包
3、mysql, SonarQube 7.7支持的mysql版本为 >=5.6且小于8.0
所以本文选择5.6版本。下载安装过程就省略了。
4、jdk1.8
安装Mysql
版本是5.6 过程略,安装完成后新建数据库 sonar
安装SonarQube 7.7
下载SonarQube 7.7后,打开下载目录下的conf下的sonar.properties文件,找到配置mysql连接字符串地方。
完整配置信息如下:
#----- DEPRECATED
#----- MySQL >=5.6 && <8.0
# Support of MySQL is dropped in Data Center Editions and deprecated in all other editions
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=xxx
sonar.sorceEncoding=UTF-8
其他不用改
完成后,点击bin下StartSonar.bat执行
看到如下界面,就搭建成功:
然后可以访问http://localhost:9000/,可以看到如下页面:
默认密码是 admin/admin
中文包下载地址
https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases
然后把包放入sonarqube-7.7\extensions\plugins下(如果有旧版本进行删除),重启服务成功。
此处就不再安装中文包了
搭建sonar-scanner
1、修改配置文件:conf目录下的sonar-scanner.properties
全文如下:
#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here
#----- Default SonarQube server
#sonar.host.url=http://localhost:9000
sonar.host.url=http://localhost:9000
#----- Default source code encoding
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=xxx
sonar.sourceEncoding=UTF-8
2、修改mysql的配置文件 my.ini
修改配置max_allowed_packet=64M,完成后重启mysql服务
通过show variables like ‘%max_allowed_packet%’; 命令查看是否生效
3、配置sonar-scanner环境变量:
4、登录 http://localhost:9000/
按如下步骤创建 project:
1)
2)
默认密码 admin/ admin
3)创建新的project
4)填入project-key,识别项目
5)生成 token,输入选择开发语言和开发框架
6)执行 scanner
cmd进入到需要扫描的项目的目录(pom.xml所在目录)
执行如下命令:
mvn sonar:sonar -Dsonar.projectKey=生成的projectkey -Dsonar.host.url=http://localhost:9000 -Dsonar.login=生成的token -Dsonar.java.binaries=项目路径/target/classes
7)如果有错误,可以到
sonarqube-7.7\logs\web.log中查看相应的错误信息
8)扫描结束后,可以看到项目的bug和 漏洞数量和级别
(这里只是采用默认的规则扫描)