Sonarlint插件

安装

sonar与idea集成的相关步骤:

  1. 安装插件
    idea–plugns中查找sonarLint插件,并安装;安装完成后,重启idea;
    image

  2. 配置sonarlint插件
    第一次添加时,需要到General中配置使用的sonar平台地址,一般是公司内部搭建的地址
    image
    配置项目信息,在上面那个环节时,下面有个“UPdate bingding”,必须要点击下;看解释就很清楚了。从服务器获取项目列表、规则、配置等;必须在选择项目前完成这事儿。
    image

  3. 配置项目:
    选择你们的项目
    如果项目,要在SonarQube在配置下你们的项目,导入checkstyle、pmd、findbugs的配置,或者用默认的
    image

  4. 使用插件
    配置完成后,在当前项目环境下,idea的左下角就可以看到sonar扩展了,注意选Project files后选择scope
    image

至此,idea与sonar插件集成完毕

插件拉去项目列表时报错

不过使用起来遇到一个问题,如果SonarQube的子项目比较多时,插件拉去项目的api会超时timeout,导致无法使用
img
解决:
问题就是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
4
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

实际测试发现:问题出在order by name上,如果只使用order by,执行就会慢到没结果甚至报[Err] 2000 - Unknown MySQL error错误,之后看表结构发现问题

1
`name` varchar(2000) COLLATE utf8_bin DEFAULT NULL,

name这个字段竟然有2000的长度,然后看数据库实际数据长度没有超过160的,所以修改为300,查询就非常快了,问题解决!

------ 本文结束 ------

版权声明

dawell's Notes by Dawell is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Dawell创作并维护的dawell's Notes博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于dawell's Notes 博客( http://dawell.cc ),版权所有,侵权必究。

坚持原创技术分享,您的支持将鼓励我继续创作!