sonarqube的个人安装和配置

起因:
甲方那边交付源代码后,他们自己编译jar包,但是他们编译的时候需要先过一遍sonar的检测。所以去检测了,然后因为我们平常对项目的代码规范抓的不是很严,所以导致编译出来的问题比较多。
其实也是因为编译检测的规则比较严格。比如他那边不让用try管理流,推荐使用try()的方式管理流,利用8的流自动关闭规则。

先不管他。我们还是先搭建自己的环境把,现在初步规划是现在本地搭建一下SonarQube ,然后本地检测一下,把一些比较严重的漏洞修复一下,小的漏洞协商后过滤掉。
先区分SonarQube 和sonarlint,前者是一个用于管理源代码质量开放平台。我初步理解为,可以缓存检测规则,然后收集检测结果,缓存到服务,用来收集查看。
而sonarlint我理解为idea的插件。有默认的代码规则,但是支持连接SonarQube ,同步规则。
目前使用的是SonarQube 6.7,已经有超过100个项目在使用。近期开发同学反馈,IDEA+SonarLint结合使用非常好用,可以在代码编写和问题产生的第一现场解决问题。但是开发同学也希望,能使用IDEA+SonarLint+SonarQube,与最终“质量门禁”使用相同的规则,以促进质量内建。

那先百度下安装教程把。
https://blog.csdn.net/aixiaoyang168/article/details/77565756
https://www.cnblogs.com/milletes/p/5985957.html
https://my.oschina.net/milletes/blog/761742
https://blog.csdn.net/wojiushiwo945you/article/details/100699885
https://www.pianshen.com/article/24651074237/

其中最有价值的就这篇了https://www.pianshen.com/article/24651074237/
其他文章基本不介绍自己踩的坑,就按部就班的安装,导致如果一些版本变更,不兼容后就不知道解决方案了。
这里我介绍一下我的安装流程和踩的坑。
基本步骤就
1.从官方下载war包,解压缩。
直接百度搜索SonarQube,能查找到对应的下载页面。注意版本问题,我下的是9的版本的。
版本问题主要有这么两个配置,1.7以后不支持mysql作为数据库。6以前的版本对idea的插件可能有问题。
解压后的格式也很清晰,基本一眼即明。
2.更改配置,运行服务器
我们再conf里,去wrapper.conf修改wrapper.java.command=D:\jdk-13\bin\java
这里是主要获取本地的java环境的,所以如果bin的启动失败的话,报java版本问题的话,记得修改这里。
然后是conf的sonar.properties,这里能修改本地的数据库和端口配置等,
但是7以后不支持mysql,我也没其他数据库,所以我就默认的以h2数据库了,问题就是重启后数据全部丢失。摊手。但是我是测试,问题不大,只是走下流程。
启动后,默认的项目为localhost:9000,进来后默认用户名和密码admin,admin。也是在配置能配的,不管。
3.下载汉化插件,重启
进来后,发现都是英文,还好有中文插件。去市场找中文插件,如果安装失败,直接去github,下载后扔extensions\plugins文件夹下重启。
重启的问题,我们是bat启动的,本来以为关掉StartSonar.bat的窗口就好,但是他还有一些服务默认启动的,所以再次进入资源管理器关闭所有java的进程,再次点击StartSonar.bat进行重启
4.新建项目,配置token
教程让我装sonar-scanner,但是我看项目引导里,没提,我就新建项目,项目名称,手工,
配置token,然后引导会生产一个命令。
https://blog.csdn.net/zhs145612zhs/article/details/86595807
5.Maven配置,开始检测。
mvn sonar:sonar
-Dsonar.projectKey=ito_project2
-Dsonar.host.url=http://localhost:9000
-Dsonar.login=380657dcba612502e110de2b33f26283692d342a
这个命令也可以看出,主要是配置项目信息和SonarQube地址,token信息。
猜测是扫描项目,然后扫描项目结果发送到SonarQube。

这里也出问题了,因为我的环境是利用java的安装包,一步步配置的。我是没有配置环境变量的。
然后我到项目目录,执行这个命令的时候,报没有配置环境变量。
百度后,让我配置JAVA_HOME的环境变量。说mvn的java的bat脚本是读取JAVA_HOME的。
然后我配置了java8的地址,然后报版本问题。
我就记起来,我SonarQube启动是利用java13的,然后
我就改了配置地址JAVA_HOME的地址,然后就启动成功了,逐步分析了。
我配置13主要是因为甲方说了。SonarQube需要11以上的版本,估摸也是因为版本问题,问题不大。

6.查看检测结果。
服务器页面就能看到检测结果了。

Idea整合的话,网上大堆,就是下插件,然后setting里设置就好

如何忽略某个检测规则呢,从代码层面上
http://cn.voidcc.com/question/p-poyjhuoe-kt.html
@SuppressWarnings(“squid:S4830”)
或者注释 //NOSONAR
S4830是从为什么里的右上角可以看出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值