起订:1
发货:1天内
sonarqube架构介绍
SonarQube平台主要由4个组件组成:
(1). SonarQube服务器:
主要包括web服务器,基于ElasticSearch的搜索服务器,计算引擎服务器。
其中,web服务器,是供开发人员浏览查看代码分析结果,进行相应的配置等。
计算引擎服务器主要是处理代码分析报表并将其存储在数据库。
(2). SonarQube 数据库:
存储配置信息和代码分析报表。
(3). 多个Soanr插件:包括分析各种语言的插件。
(4). 多个Sonar Scanner,主要运行在开发人员的代码端,可以单独部署,也可以集成在Maven,Gradle等。
SonarQube 8.7 升级详细说明(二)
sonarcube Mysql数据库切换到PgSQL
备份 sonar 现有的MySQL数据库用于导入 PgSQL
使用sonarcube初始化一下tgresql数据库
Could no determine SonarQube version of the target database. Could not select version from schema_migration.
新创建的空PG库是不能进行迁移的,需要同版本的soanr使用后才会找到和这个表!就是需要旧版本的SonarQube 初始化一次
数据迁移 mysql -> pgsql网站提供的迁移工具重启服务
升级 7.9.5
升级 8.7.0
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使用流程
使用流程图
1、开发负责人获取蕞新代码到本地;
2、开发负责人执行sonar-runner开始代码分析工作;
3、开发负责人将分析出来的issue指派给开发人员;
4、开发人员修复issue;
5、开发负责人重新获取蕞新源码,重新执行sonar-runner,检查issue的修复情况。