如何使用SonarQube Scanner扫描器对代码进行扫描

Preface:SonarQube和SonarQube Scanner可以在一台服务器上也可以在不同的服务器上

本例:SonarQube部署在Linux服务器,而SonarQube Scanner使用的Windows服务器。

step1:根据操作系统下载安装包

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

step2:解压安装包并配置环境变量到path,见图

step3:验证是否成功,如下提示则表示成功

以上安装完毕,接下来我们通过扫描器结合SonarQube来完成对代码的质量扫描

 

step4:在sonar系统创建token口令,建项目名称,下一步用到

这里的token在第一次登陆SonarQube系统时会提示你录入,见下图,也可以跳过,登陆系统后可以在如上图位置进行设置。

step5:cd到你需要进行代码检查的项目目录,执行如下命令(Windows服务器)

***>sonar-scanner.bat -Dsonar.projectKey=mvndemo -Dsonar.sources=. -Dsonar.host.url=http://192.168.***.***:7000 -Dsonar.login=85d561f16a442dd3593b069d704fca1826b75a6a -Dsonar.java.binaries=./WebRoot/WEB-INF/classes

没有异常则表示成功,如下图

Instruction:

1>.-Dsonar.projectKey //step4中的项目名称

2>.-Dsonar.sources      //需要扫描的项目目录位置

3>. Dsonar.host.url    //sonar服务访问的url地址

4>.Dsonar.login          //令牌名称对应的token

5>.Dsonar.java.binaries //项目编译目录,java为例,则为class文件所在的目录

【执行命令,异常情况说明,及处理方法】

step5中,网站找到好多文章,使用扫描器命令时,都没加Dsonar.java.binaries这个参数

我在执行是报了下面这个异常

【sonar-scanner.bat -Dsonar.projectKey=mvndemo -Dsonar.sources=. -Dsonar.host.url=http://192.168.192.144:7000 -Dsonar.login=85d561f16a442dd3593b069d704fca1826b75a6a -Dsonar.java.binaries=./WebRoot/WEB-INF/classes】

原因见官网,上图:

所以有两种解决方案

(按理来说,对代码做质量检查,检查源码就可以了,不需要分析编译后的class文件,
具体为什么在sonar4.12版本以后要指定这个参数,没有做具体更深入的分析)

方案一:既然说缺少参数,那就配置此参数即可

按照step5去启动机上Dsonar.java.binaries参数启动扫描器即可。

方案二:降低sonar-java插件版本(没有试过)网上有网友通过这种方式成功解决了这个异常。

https://sonarsource.bintray.com/Distribution/sonar-java-plugin/sonar-java-plugin-4.10.0.10260.jar
把plugins下面的新版的sonar-java替换成4.10版本的。(我没试,有网友是这么解决的)

上一张SonarQube+SonarQube Scanner扫描java项目的结果图,
对扫描结果的处理及分析,这里不做具体解读。

 

【参考网站】
https://www.jianshu.com/p/b5b3becc39c8
https://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes
https://docs.sonarqube.org/display/PLUG/Java+Plugin+and+Bytecode

转载于:https://my.oschina.net/guiguketang/blog/1814985

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值