安装
sonar与idea集成的相关步骤:
安装插件
idea–plugns中查找sonarLint插件,并安装;安装完成后,重启idea;配置sonarlint插件
第一次添加时,需要到General中配置使用的sonar平台地址,一般是公司内部搭建的地址
配置项目信息,在上面那个环节时,下面有个“UPdate bingding”,必须要点击下;看解释就很清楚了。从服务器获取项目列表、规则、配置等;必须在选择项目前完成这事儿。配置项目:
选择你们的项目
如果项目,要在SonarQube在配置下你们的项目,导入checkstyle、pmd、findbugs的配置,或者用默认的使用插件
配置完成后,在当前项目环境下,idea的左下角就可以看到sonar扩展了,注意选Project files后选择scope
至此,idea与sonar插件集成完毕
插件拉去项目列表时报错
不过使用起来遇到一个问题,如果SonarQube的子项目比较多时,插件拉去项目的api会超时timeout,导致无法使用
解决:
问题就是http://xxx:9000/api/projects/index?format=json&subprojects=true
这个URL请求时timeout,如果浏览器请求会报如下错误:1
{"err_code":500,"err_msg":"ActiveRecord::JDBCError: Can not read response from server. Expected to read 255 bytes, read 0 bytes before connection was unexpectedly lost.: SELECT id,uuid,kee,name,language,long_name,scope,qualifier,root_uuid,project_uuid FROM `projects` WHERE (enabled=1 AND scope in ('PRJ') AND qualifier in ('TRK','BRC')) ORDER BY name"}
问题SQL:1
2
3
4SELECT id,uuid,kee,name,language,long_name,scope,qualifier,root_uuid,project_uuid
FROM `projects`
WHERE (enabled=1 AND scope in ('PRJ') AND qualifier in ('TRK','BRC'))
ORDER BY name
实际测试发现:问题出在order by name上,如果只使用order by,执行就会慢到没结果甚至报[Err] 2000 - Unknown MySQL error
错误,之后看表结构发现问题1
`name` varchar(2000) COLLATE utf8_bin DEFAULT NULL,
name这个字段竟然有2000的长度,然后看数据库实际数据长度没有超过160的,所以修改为300,查询就非常快了,问题解决!