SonarQube简介

SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。

sonarQube是什么?

1、代码质量和安全扫描和分析平台。

2、多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。

3、支持25 编程语言的代码扫描和分析,包含java\python\C#\javascript\go\C 等。

4、涵盖了编程语言的静态扫描规则: 代码编写规范 安全规范。

5、能够与代码编辑器、CI/CD平台完美集成。

6、能够与SCM集成,可以直接在平台上看到代码问题是由哪位开发人员提交。

7、帮助程序员写出更干净、更安全的代码。

SonarQube下载和安装

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

sonar检测代码(安全测试-SonarQube安装和简单使用)(1)

sonar检测代码(安全测试-SonarQube安装和简单使用)(2)

下载后,解压就可以使用

2、选择对应版本下载,最新sonarqube 必须要求jdk 11以上

jdk11地址:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

建议下载8.4版本,因为目前开发代码很多都是使用JDK8。

3、sonar配置JDK路径:sonarqube目录\conf\wrapper.conf

wrapper.java.command=C:/Program Files/Java/jdk-11.0.7/bin/java

sonar检测代码(安全测试-SonarQube安装和简单使用)(3)

4、启动相应操作系统目录下的StartSonar。

如:win的64位系统,sonarqube-8.4.2.36762\bin\windows-x86-64\StartSonar.bat

sonar检测代码(安全测试-SonarQube安装和简单使用)(4)

5、启动成功显示如下:

sonar检测代码(安全测试-SonarQube安装和简单使用)(5)

6、到浏览器界面,输入 : http://localhost:9000能够进入界面证明安装成功,

初始的账户名 : admin 初始的密码 : admin

sonar检测代码(安全测试-SonarQube安装和简单使用)(6)

7.登录成功

sonar检测代码(安全测试-SonarQube安装和简单使用)(7)

sonar扫描

描扫主要有2种方式:

(1)使用maven方式扫描

(2)通过SonarScanner方式扫描

对Maven方式的工程,建议直接maven方式扫描,

操作如下: (1)下载maven软件,并且配置maven到系统环境变量

mvn -version显示版本,配置成功

sonar检测代码(安全测试-SonarQube安装和简单使用)(8)

  • (2)修改maven配置文件:
  • <profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <!-- 配置 Sonar Host地址,默认:http://localhost:9000 --> <sonar.host.url> http://127.0.0.1:9000 </sonar.host.url> </properties> </profile>

  • (3)下载对应原代码,切换到项目代码目录,执行maven扫描命令
  • mvn verify sonar:sonar -Dmaven.test.skip=true
  • 说明: -Dmaven.test.skip=true 跳过单元测试
  • sonar:sonar 执行源码扫描verify 运行任何检查,验证包是否有效且达到质量标准
  • sonar检测代码(安全测试-SonarQube安装和简单使用)(9)

  • 备注:需要编译的JDK版本一定要与开发时使用的版本一致,不然可能编译不通过。
  • 扫描过程根据代码量,代码量比较大,扫描的时间会比较长;扫描完成,可以直接登录管理界面进行查看和分析扫描结果。

    通过SonarScanner方式扫描

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

    (1)下载对应版本

    sonar检测代码(安全测试-SonarQube安装和简单使用)(10)

    (2)解压下载压缩包后将sonar-scanner-4.3.0.2102-windows /bin目录加入到系统环境变量

    sonar检测代码(安全测试-SonarQube安装和简单使用)(11)

    (3)执行命令,查看版本

    sonar检测代码(安全测试-SonarQube安装和简单使用)(12)

    (4)在需扫描项目的根目录创建配置文件:sonar-project.properties

    # 项目的key唯一不重复即可 sonar.projectKey=test1 # 项目的名字 sonar.projectName=test1 # 项目的版本 sonar.version=1.0 # 需要分析的源码的目录,多个目录用英文逗号隔开 sonar.sources=src # sonarQube扫描的对象是.class而不是.java文件 sonar.java.binaries=out # 解析的开发语言,如果需要解析其他语言,需要下载对应的插件 sonar.language=java #编码格式 sonar.sourceEncoding=UTF-8

    (4)进行项目目录,执行sonar-scanner

    执行成功如下:

    sonar检测代码(安全测试-SonarQube安装和简单使用)(13)

    (5)登录管理页面,查看扫描结果

    sonar检测代码(安全测试-SonarQube安装和简单使用)(14)

    问题

    (1)maven扫描,报错Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.5.0:compile (default) on project message: protoc did not exit cleanly.

    sonar检测代码(安全测试-SonarQube安装和简单使用)(15)

    解决方法:将项目转移到全英文路径

    ,