java网页链接扫描仪器_如何使用SonarQube Scanner扫描器对代码进行扫描

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

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

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

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

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

e98246da7268249dafda641c91cea4f3.png

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

6c1cae095af0056748a33412d5a84360.png

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

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

a8f7f81ed980377955aec59c58f75bc6.png

aceca1d01e63fedd07d8de5ce0fef21d.png

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

e566e708b49dd1cc8e17cfb482f6c4a2.png

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

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

2ae04a0265758030b2bb5c29ce8e9d55.png

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】

d7feaa13e7952ddfdaf9da98d2d218b3.png

原因见官网,上图:

cc6df4a82dd197b4b73595cdb9aa25c7.png

所以有两种解决方案

(按理来说,对代码做质量检查,检查源码就可以了,不需要分析编译后的class文件,

具体为什么在sonar4.12版本以后要指定这个参数,没有做具体更深入的分析)

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

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

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

上一张SonarQube+SonarQube Scanner扫描java项目的结果图,

对扫描结果的处理及分析,这里不做具体解读。

28dffd6269bd7955fe8951ec09877d6d.png

异常1:

Unable to create symbol table for : *.java

配置->应用市场->sonarjava

更新该插件至最新版本

11defa7d8c170192b298566c11510345.png

linux上更新相应的sonar-scanner版本,注意到官方查看不同scanner版本支持的jdk版本。

异常2:

ERROR: Error during SonarQube Scanner execution

java.lang.IllegalStateException: Error when executing blame for file

ae9a3a830aa59cf977ab5b57b9297f1e.png

异常3:

Caused by: org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: Authentication required

解决办法,同异常2

【参考网站】

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://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值