一、功能介绍
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可从七个维度检测代码的质量:
1、糟糕的复杂度分布:文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试
2、重复:显然程序中包含大量复制粘贴的代码是质量低下的, sonar可以展示源码中重复严重的地方
3、缺乏单元测试:sonar可以很方便地统计并展示单元测试覆盖率
4、没有代码标准:sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写
5、没有足够的或者过多的注释:没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷
6、潜在的bug:sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug
7、糟糕的设计:通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系可以检测自定义的架构规则通过sonar可以管理第三方的jar包可以利用LCOM4检测单个任务规则的应用情况检测耦合
二、安装过程
1、下载sonar
不建议用最新版,本教程使用sonarqube-7.4.rar,依赖JDK8(7.9依赖JDK11)
2、新建数据库(任意)
举例:比如在本机localhost:3306下新建数据库:db_sonar
3、修改配置文件(sonar.properties)
sonar/conf/sonar.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/db_sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root #数据库用户
sonar.jdbc.password=123456 #数据库密码
sonar.sorceEncoding=UTF-8 #编码格式
sonar.login=admin #管理员账号
sonar.password=admin #管理员密码
sonar.web.port=9000 #访问端口,默认9000
4、汉化(将汉化包sonar-l10n-zh-plugin-1.24.jar丢到sonar/extensions/plugins下)
5、启动(sonar/bin/当前系统的版本/StartSonar.bat)
若启动失败可查看日志文件(sonar/log下各个文件)
默认端口为9000,访问 http://localhost:9000 即可
6、部署(maven版)
maven配置文件(maven/conf/settings.xml)修改:
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<proxies>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- sonar服务地址 -->
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
</proxies>
pom.xml文件新增插件:
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.7.0.1746</version>
</plugin>
执行maven命令:
mvn sonar:sonar
三、小结
我们可以看到安装过程比较简单,界面上的操作也不介绍了,访问http://localhost:9000即可