sonarqube问题修改总结
一、代码复杂度问题
1、类的复杂度过高。
说明:Split this class into smaller and more specialized ones to reduce its dependencies on other classes from 24 to the maximum authorized 20 or less.
原因:类之间的耦合度过高,引用了太多其他的类,
错误示例:
修改建议:根据面向对象的单一职责进行设计,进行降耦。
2、多重循环嵌套
说明:代码块中包含多个if、for、while、switch,影响阅读,难以维护
错误示例
Sonarqube权限配置
禁止游客访问
全局权限设置(禁止匿名用户权限、用户组全局权限设置)
权限模板设置,即项目权限设置。
Sonarqube质量阀默认质量阀设置,没有质量阈值的项目默认采用此设置。
自定义质量阀,可以选择适用于哪些项目。
Sonarqube质量配置
这里以 Java 语言为例说明,如下是 Sonar 内置默认的质量配置(规则集合)。
规则可以根据需要进行设置,还可以选择自定义的 PMD、Checkstyle 规则配置文件。
修改自定义配置为默认。
另外,还可以或者挂起规则,注意继承的规则不可挂起。
sonarQube项目支持
1、选择项目,创建要要分析的项目
2、创建项目令牌 可以写任意不重复的名称
3、 选择支持项目,我们这里对后台开发常见java项目进行配置,选择开发常用的开发工具maven,如图所示,会生成maven 集成命令,一定要保留下来
4、项目集成soanr
要想让java项目支持mvn 命令,首先要集成sonar maven插件
5、项目分析结果
soanr会自动分析推送的项目
Sonarqube关于机器部署
1、只能有1个SonarQube Server 和1个 SonarQube Database
2、考虑性能优化,每一个组件(server, database, scanners)应当安装在不同的机器上,并且是服务器。
3、SonarQubeScanners 可以水平扩展机器
4、所有机器的时间必须要同步
5、SonarQube Server 和 SonarQube Database 必须在同一网段
6、SonarQubeScanners 与SonarQube Server可以不在同一网段
7、SonarQube Scanners 与 SonarQubeDatabase之间没有通信