使用SonarQube+SonarScanner对Java代码进行扫描(Windows环境)

Posted nikeylee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SonarQube+SonarScanner对Java代码进行扫描(Windows环境)相关的知识,希望对你有一定的参考价值。

目录

SonarQube

一、准备工作

1、下载SonarQube+SonarScanner

1)SonarQube 8.9.0版本

2)SonarScanner 4.6.2版本

2、安装JDK 11

3、安装SonarQube需要使用的数据库PostgreSQL13.3

4、配置SonarScanner环境变量

二、修改SonarQube+SonarScanner的配置文件

1、修改SonarQube配置文件,添加数据库配置信息

2、修改sonar_scanner配置文件

3、在待运行项目的根目录,添加sonar-project.properties配置文件

三、启动SonarQube

1、进入SonarQube解压目录

2、浏览器打开地址:http://127.0.0.1:9000 

四、使用sonar-scanner进行代码扫描

1、运行sonar-scanner命令

 2、查看SonarQube控台,看代码扫描结果


SonarQube

  • 是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误;
  • 支持代码静态扫描检查的语言:Java,C,Python等;

 

一、准备工作

1、下载SonarQube+SonarScanner

1)SonarQube 8.9.0版本

下载地址:https://www.sonarqube.org/downloads/

本文选择社区8.9.0版本:sonarqube-8.9.0.43852.zip

下载成功后,解压到目录:D:\\sonar\\sonarqube-8.9.0.43852

 

2)SonarScanner 4.6.2版本

下载地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

本文使用的版本:4.6.2

下载成功后,解压到目录:D:\\sonar\\sonar-scanner-4.6.2.2472-windows

 

2、安装JDK 11

参考文章:https://blog.csdn.net/nikeylee/article/details/117410036

SonarQube8.9.0版本需要安装JDK11版本,否则启动SonarQube8.9.0版本时,会报错,报错信息显示如下:

 

3、安装SonarQube需要使用的数据库PostgreSQL13.3

参考文章:https://blog.csdn.net/nikeylee/article/details/117412832

本文安装的是SonarQube8.9.0版本,SonarQube 7.9以上的版本已不再支持mysql,SonarQube8.9.0版本修改配置文件改为MySQL时报错,报错如下图:

使用可视化工具pgAdmin,创建数据库sonarqube,使用用户名/密码:sonar/sonar连接数据库;

 

4、配置SonarScanner环境变量

1)新增SONAR_SCANNER_HOME系统变量

变量名:SONAR_SCANNER_HOME

变量值:D:\\sonar\\sonar-scanner-4.6.2.2472-windows

 

2)修改Path系统变量

变量名:Path

变量值:%SONAR_SCANNER_HOME%\\bin;

 

二、修改SonarQube+SonarScanner的配置文件

1、修改SonarQube配置文件,添加数据库配置信息

修改D:\\sonar\\sonarqube-8.9.0.43852\\conf\\sonar.properties文件

在最下面添加数据库连接信息: 

sonar.jdbc.url=jdbc:postgresql://127.0.0.1:5432/sonarqube?currentSchema=public
#数据库用户名
sonar.jdbc.username=sonar
#数据库密码
sonar.jdbc.password=sonar

 

2、修改sonar_scanner配置文件

修改D:\\sonar\\sonar-scanner-4.6.2.2472-windows\\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://127.0.0.1:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

 

3、在待运行项目的根目录,添加sonar-project.properties配置文件

项目根目录:D:\\Nikey\\Project\\Repository\\gitee\\shopping

# 配置代码扫描的项目信息
# must be unique in a given SonarQube instance
sonar.projectKey=shopping

# this is the name displayed in the SonarQube UI
sonar.projectName=shopping
sonar.projectVersion=1.1.1

# Path is relative to the sonar-project.properties file. Replace "\\" by "/" on Windows.
# If not set, SonarQube starts looking for source code from the directory containing 
# 配置扫描的代码目录
sonar.sources=src

# classes文件目录,不加会报错
sonar.java.binaries=target

sonar.language=java
sonar.sourceEncoding=UTF-8
sonar.exclusions=**/*.js

sonar.login=test  
sonar.password=test

 

三、启动SonarQube

1、进入SonarQube解压目录

解压目录:D:\\sonar\\sonarqube-8.9.0.43852\\bin\\windows-x86-64

点击StartSonar.bat,启动SonarQube,会稍微有点慢,因为要初始化数据库信息;

 

启动成功,CMD控台显示如下图

 

可以看到自动创建了sonarqube的数据库表 

 

2、浏览器打开地址:http://127.0.0.1:9000 

 

输入默认用户名和密码:admin/admin

第一次登录成功后,admin账户的密码依据提示进行更新;

 

登录成功后截图:

 

如果未配置SonarQube的数据库,则启动成功后,会有如下告警提示信息:

 

四、使用sonar-scanner进行代码扫描

1、运行sonar-scanner命令

查看sonar-scanner版本

sonar-scanner -v

 

进入sonar-project.properties所在目录:D:\\Nikey\\Project\\Repository\\gitee\\shopping

运行代码扫描命令,命令行中的同名参数(如-Dsonar.projectVersion),可以替换掉项目配置文件sonar-project.properties设置的参数值;

sonar-scanner -Dsonar.projectName=shopping -Dsonar.projectVersion=1.2

 

 2、查看SonarQube控台,看代码扫描结果

 

以上是关于使用SonarQube+SonarScanner对Java代码进行扫描(Windows环境)的主要内容,如果未能解决你的问题,请参考以下文章

gitlab+jenkins+maven+docker持续集成——sonarqube及sonarscanner代码审查

Sonarqube SonarScanner 忽略 React 项目中的 Javascript 文件

MySQL5.7+SonarQube7.4+SonarScanner4.2安装与使用

SonarScanner 整合 SonarQube 代码质量检查完美方案

利用 SonarScanner 静态扫描 Rainbond 上的 Maven 项目

SonarScanner (C#) 不支持代码内 StyleCop 警告抑制