?
目录
?1.简介
?2.安装1.sonarLint的安装与使用
(1)安装
?(2)使用
2.sonarqube的安装
1.安装
3.sonar-scanner
1.安装
在开发的过程中,公司要扫描文档的截图信息。看到公司发的模板后,我一脸懵,不知道该怎么集成这些东西。后来就各种百度,才了解到还有这么多的插件供使用。安装过程中也出现很多很多坑,几乎所有的坑都被我遇到了。不过还好,我大概花了一天的时间。才搞定。下面就详细介绍下吧! ?
?1.简介 ?
?在安装之前,先大概了解下这三个作用是什么。 sonarLint:代码扫描插件,类似于findBugs、阿里规约等 sonar-scanner:扫描项目代码,找出项目存在的bug、规范问题、覆盖率等等。 soarQube:是一个代码质量管理平台,也就是一个可视化平台。
?
?2.安装
1.sonarLint的安装与使用
(1)安装
默认快捷键Ctrl+Alt+S.或者鼠标点击菜单File->Settings… ?
在左上角红框可以输入plugins几个字符,快速过滤,鼠标点击下面过滤出来的Plugins菜单,在点击右下红框?Browes repositeries… ?
再弹出窗口搜索框里输入sonar,选中SonarLint,再点击页面右边的绿底色Install按钮 ?
之后等待安装完毕.在IDEA底部会有安装进度 ?
鼠标点击可以展开详细进度
安装完后,重启idea就好了。?
?(2)使用 ?
安装SonarLint插件重启后,IDEA Tool Windows部分会出现SonarLint View。如果没有出现,选择菜单View->Tool Windows->SonarLint会显示 ?
SonarLint安装完后,默认情况下是自动检测项目代码的。若觉得影响效率,可通过菜单Settings->Other Settings->SonarLint General Settings进行设置
?
检测完毕后,会在SonarLint Tool View中显示出检测的问题,以类名称进行分类。各类的issue,分为阻断、严重、主要、提示和次要,问题严重性依次降低。点击issue,在右侧会出现对应的Rule,可参照进行修改。
?现在我们就可以针对每一项问题进行修改了。右边是给的建议和要求。
2.sonarqube的安装
1.安装
在安装之前,先说下前提吧,以免出现更多的错误 ?
- 1、SonarQube-7.9.1需要 java11 才能启动。
- 2、SonarQube7.9 及以后的版本不再支持 MySQL,SonarQube7.9 之前的版本要求 MYSQL5.6-8.0(左闭右开区间),否则会出现 java.io.IOException: 远程主机强迫关闭了一个现有的连接。
- 3、有些版本(好像是7以后)的SonarQube,只能扫描master分支,不能扫描其他分支。
- 4、据其他博文说明:SQL Server 2016(sql server version需要在12以上,也就是SQL Server 2012及以下版本是不兼容sonarqube 8.2的)
- 5、SonarQube无法连接远程数据库,必须使用localhost。(这个坑有些文章提到,据我实测,不存在,因为我用的就是远程服务器上的sqlserver数据库)
(1)在官网下载sonarQube,我下载的是7.2版本。 (2)解压文件。进入目录:D:\all-soft\sonarqube-7.2\bin\windows-x86-64,执行StartSonar.bat文件,出现下图就说明启动成功了。?
如果出现下图就说明你的jdk环境不匹配。我本人用的是jdk1.8?
?
(3)然后打开浏览器,输入:http://localhost:9000,就能进到sonarQube可视化界面了
(4)sonarQube连接数据库(重点) 首先在本地创建一个数据库“sonar”,不需要创建任何表。为什么创建数据库呢?是因为用sonar-scanner扫描代码,会将扫描的结果全部存储在这个数据库中。conf/sonar.properties,添加以下信息 ?
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
第一行:固定 第二行:数据库的账号 第三行:数据库的密码 第四行:编码 第五行:sonarQube的账号:默认是admin 第六行:sonarQube的密码:默认是admin ?
保存后,再次启动StartSonar.bat文件,结果就报错了。
2018.01.24 10:10:56 WARN app[][o.e.t.n.Netty4Transport] exception caught on transport layer [[id: 0x146de8cb, L:/127.0.0.1:57099 – R:/127.0.0.1:9001]], closing connection
java.io.IOException: 远程主机强迫关闭了一个现有的连接。
然后我就各种百度,后来才发现原来是mysql的版本问题。 因此先查看sonarQube的配置文件conf/sonar.properties,全局搜索mysql。
从上图可以看到,版本的问题,由于我的是sonarqube7.2版本,所以要求连接的mysql数据库必须介于5.6和8.0之间。 如果不知道自己的mysql数据库是什么版本,可以在查询框执行语句:select versions();就可以查出版本。当时我并没有注意到匹配mysql版本的问题。所以就疯狂报这个错误。我当时想着mysql卸载安装很麻烦,所以就懒得去重新安装,所以一直寻求其他解决方案,可是无济于事。所以最后我妥协了。换了5.7版本的mysql。结果竟然成功了。 ?
3.sonar-scanner ?
1.安装
(1)下载安装包 下载地址Index of /Distribution/sonar-scanner-cli 解压后,进入conf文件。编辑配置文件scanner.properties中的属性 ?
sonar.host.url=http://localhost:9000
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
如果我们再sonar中修改了端口号的话 那么就就需要修改这里的host.url
修改完毕之后 ?配置sonar-scanner的环境变量 ?使得sonar-scanner能再任何地方执行使用其命令
新建变量 name=SONAR_HONE value="sonar-scanner的目录"打开path输入%SONAR_HOME%bin;
完成之后,打开cmd输入sonar-scanner -v ?如果正常显示 ?那么说明安装成功 ?
(3)进入http://localhost:9000页面,点击登录。账户和密码默认为admin (4)最后会生成一个命令
?
?
?最右边就是要执行的命令,先copy下来 (5)然后检查自己的maven环境变量,可执行mvn -version,如果出现下图,则说明安装成功,如果没有,则重新检查下自己的配置和安装
?
?(6)进入自己项目的根目录下,打开cmd窗口,执行命令(刚刚copy的命令): ?
mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=8ced20da09137d595465c478345a6fe1ee3ac97f
出现下图,就说明执行成功啦?
?待命令执行结束,再次进入http://localhost:9000界面,就能成功访问啦!
|