SonarQube简介
1. sonar简介sonar是一款静态代码质量分析工具,支持Java、Python、PHP、Javascript、CSS等25种以上的语言,而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告;
sonar通过配置的代码分析规则,从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目,风险等级从A~E划分为5个等级;
同时,sonar可以集成pmd、findbugs、checkstyle等插件来扩展使用其他规则来检验代码质量;
sonar设置了质量门,通过设置的质量门评定此次提交分析的项目代码是否达到了规定的要求;sonarqube问题修改总结
三、可读性问题
1、用isEmpty()去做容器的空或者非空判断。
说明:Use isEmpty() to check whether the collection is empty or not.
原因:增加可读性。
2、删除没有用的import、field、class、method。
原因:增加可维护性。
修改建议:删除无用代码块、申明、方法和引用。
3、if语句被拆分不利于可读
说明:Merging collapsible if statements increases the code's readability.
3、方法内多个return出口
错误示例:
解决建议:定义一个return,赋值,统一返回。
4、修改了入参说明:修改了入参降低了代码的可读性,丢失了原始参数的值。
错误示例:
5、用equalsIgnoreCase()方法替代字符串的无视大小写比较。
说明:Replace these toUpperCase()/toLowerCase() and equals() calls with a single equalsIgnoreCase() call.
原因:参数应当是final的
解决建议,利用一个临时变量充当需要变动的参数。
sonarqube常用插件:
Chinese Pack – 中文语言包
Checkstyle – Java 代码规范检查
Crowd – Crowd 插件,实现统一登录
JaCoCo – Java 代码覆盖率
PMD – Java 静态代码扫描
ShellCheck Analyzer – Shell 代码规范检查
SonarCSS、SonarHTML、SonarJS等 – Sonar 针对不同编程语言代码分析
重启服务器,插件才可以加载生效。