SonarQube是一个静态代码质量检查工具,可以检查出代码中明显或潜在问题。虽然偶尔它的判断会是错误的,但还是值得我们用。它能以比较基础的级别减少代码出错的可能,可以节省人工Review代码时间。它支持多种语言的检查。
我这里的代码是java代码,下面介绍linux系统中java代码的sonar配置方法。
方法一:使用sonar-scanner
- 下载与sonar-qube版本相配合的sonar-scanner,保存到服务器中。
sonar-scanne下载地址
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli
2. 在代码根目录建立sonar-project.properties文件,内容如下:
sonar.projectKey=com.company.projectkey1 # 项目标识sonar.projectName=My Project Name # 项目名称,会显示在sonar检查结果的目录sonar.sources=. # 待检查的代码目录sonar.java.binaries=target/classes/ # 待检查的代码编译后class目录sonar.exclusions=**/*_test.go,**/vendor/** # 在排除的,不需要检查的目录
待检查的代码可以是全部代码,也可以是子目录,根据自己需要设置。多个目录时,用逗号隔开。
比如可以写成:sonar.sources=src/com/subsrc1,src/com/subsrc2
3. 编译代码。使用自己项目的编译命令
4. 在代码根目录执行sonar检查。由自己的SonarQube的版本和存在路径不同,下面的路径会有所有不同
sh /tools/sonar-scanner-2.8/bin/sonar-scanner
方法二(仅适用于maven管理的项目):
- 编译自己项目代码
mvn install
2. 执行sonar检查
mvn sonar:sonar -Dsonar.host.url=http://xxx.xxx.xxx.xxx:9000 -Dsonar.login=552977515c9433c9596d4fccb91b636782b7f959
参数说明: sonar.host.url sonar服务器的url,默认为http://localhost:9000
sonar.login sonar用户的认证token,获取方式见第3步。
更多的参数使用方法见官网说明:
https://docs.sonarqube.org/latest/analysis/analysis-parameters/
3. 获取sonar用户的认证token
前提:已搭建好了sonar服务器。
在浏览器中打开sonar的地址,点击右上角的“登录”,输入账号、密码后登录。
登录后,点击右上角登录后的账号,依次选择“我的账号->安全”
在“令牌”部分,点击“生成”,即可生成令牌,用于第2步的sonar.login参数。
可能遇到的问题:
执行sonar检查时,提示如下内容
org.sonar.squidbridge.api.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property
是由于使用方法一时,未在sonar-project.properties文件中配置sonar.java.binaries属性。
配置了这个属性后,问题就解决了。