静态代码扫描工具 - (八)- 扫描Java项目
1、准备好Java项目代码
只要是java语言实现的项目均可。
比如,自动化测试的代码,测试平台等均可以。
本次案例,使用java语言实现的测试平台来做为扫描对象。

2、了解java项目代码的结构。
为什么要了解项目代码结构呢?
1)区分出来,哪些是开发人员写的代码,哪些是引用的第三方包或配置文件等。
2)sonarQube主要是分析开发人员写的代码质量,对于外部的依赖库这些全部都可以忽略掉。
经过与开发人员的沟通,上图中的代码当中,有如下说明:

3、在项目根目录下,配置扫描数据。
3.1 在项目下:添加 sonar-project.properties 文件

3.2 copy以下内容到sonar-project.properties当中
# must be unique in a given SonarQube instance
sonar.projectKey=my:project
# --- optional properties ---
# defaults to project key
#sonar.projectName=My project
# defaults to 'not provided'
#sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Defaults to .
#sonar.sources=.
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
3.3 配置sonar.projectKey
? 1、sonar.projectKey(必填): 的值为你的项目名称,是会显示在sonarQube管理平台上的。
? 要求在SonarQube当中,项目key名唯一。其它项目不能够再取这个名字。
? 2、sonar.projectName:项目名称。一般与key名一致。
? 3、sonar.sources: 项目下有多个目录。可以指定要扫描的源码目录。
? 主要目的是扫描团队当中开发人员编写的代码 。所以可以根据项目情况来指明。
? 4、sonar.sourceEncoding:指定源码的编码格式,一般都会去指定为UTF-8。
? 5、sonar.java.binaries(必填):指定java文件编译后class文件目录。
? 6、sonar.language:指定在扫描当中,只扫描的语言。

4、启动扫描。
启动方式:在项目的根目录下,运行sonar-scanner命令

等待任务扫描完成。

在扫描任务完成之后,sonarQube需要将其扫描结果写入数据库,需要一定的时间。
扫描的代码量越大,写入数据库的时间相对的也要长一点。
5、在sonarQube上查看扫描结果。
在sonar-scanner提示扫描完成之后,访问sonarQube地址( http://localhost:9000/projects ),会看到有1个后台任务正在执行中。
等待sonarQube的后台任务处理完成,再去查看项目分析结果:
