您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iProcess 课程 角色 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
     
   
 订阅
  捐助
Sonar实战篇
 
17235 次浏览     评价:  
 2018-4-24 
 
编辑推荐:
本文来自于csdn,本文主要做代码质量扫描,会扫描出漏洞、bug、可以改进的代码规范等问题。

一、启动SonarQube

1、配置SonarQube

配置好JDK1.8之后呢,就要开始sonar的环境变量配置啦:首先添加系统变量。变量名:SONAR_RUNNER_HOME,变量值:C:\sonar-scanner3.0。 然后在系统变量path后加 ;C:\sonarqube-6.3\bin\windows-x86-64;%SONAR_RUNNER_HOME%/bin;

接下来谈谈conf文件夹下的配置文件:sonar.properties。这个文件里的代码都是用#注释的,一般情况下你没必要去修改它。对,你没有看错,的确是不用修改这个配置文件。

(不知道为什么网上好多相关博客都是对这个配置文件进行各种修改,当时照着弄了半天,也没有整成功~~~各种心塞)

2、成功启动

启动dos窗口,将bin/windows-x86-64文件夹下的StartSonar.bat拖到dos窗口,敲回车执行,当你看到如下图红框所示的信息说明你已经成功启动了SonarQube。此时在浏览器地址栏中输入http://localhost:9000,成功显示sonarqube主页。这是就可以登陆啦,用户名和密码都是admin。

然而,事情似乎并不一定是一帆风顺的,当你按照上述进行操作时,可能会遇到一些问题。在这里谈谈自己遇到的两个问题及解决方案。

3、问题一:sonarqube未正常关闭

当你看到如下所示内容的时候,很可能是由于之前打开的sonarqube未正常关闭,这时需要打开任务管理器,将和Java有关的进程全部关掉,重新启动sonarqube即可成功。

4、问题二:JDK版本

当你看到如下图所示内容时,应该是JDK版本过低。通过查看日志文件(logs文件夹下的sonar.log)得知关键错误信息为

WrapperSimpleApp:Unable to locate the class org.sonar.application.App:java.lang.UnsupportedClassVersionError: org/sonar/application/App : Unsupportedmajor.minor version 52.0

解决方法是按照相关操作配置JDK1.8,俺也是历经问题才知道原来这个错误是JDK版本引起的。

二、扫描源码

1、配置sonar-project.properties

在要进行代码质量检测的项目根目录下新建一个名为sonar-project.properties的配置文件,在这里以SSH网上商城为例,sonar-project.properties所在位置和配置文件中的内容如下所示:

<span style="font-family:'KaiTi_GB2312';font-size:24px;">sonar.projectKey=TGB-shop
sonar.projectName=shop
sonar.projectVersion=1.0
sonar.sources=src
sonar.language=java
sonar.sourceEncoding=UTF-8
</span>

相关属性说明如下:

2、执行sonar-scanner,扫描源码

首先切换到源码根目录,然后执行sonar-scanner.bat。

启动sonar-scanner.bat的过程可能会有些稍长,耐心等待,当出现“EXECUTION SUCCESS”字样时,表示成功启动。

3、浏览sonarqube主页

登录http://localhost:9000,你将会看到使用sonar-scanner扫描过的项目,如shop。

打开这个shop,你将能看到这个shop项目存在的问题。如CategorySecondData.java文件。

sonar规定使用list.isEmpty()来替代list.size()>0。至于为什么要这样做?请点击红框区域,你的疑惑将会一扫而空。

三、SonarLint

1、检测代码

SonarLint是我们常用IDE的一个插件,官网给出了VS、Intellij IDEA、Eclipse这三个IDE。这里以VS的SonarLint为例。需要注意的是官网只给出了VS2015和VS2017的插件。我们下载好VS2015的插件。SonarLint.VSIX-2.11.0.1102-2015.vsix,安装即可。

接下来我们用VS2015把ITOO.Basic系统打开,在项目处,右键选择SonarLint Connected Mode—Exclude from Analysis。在该项目的类文件下就能看到代码质量提示啦。

你可能会问,我们开发.NET版本的ITOO用的是VS2012,它是否也有SonarLint呢?还真有,就是这货VSSonarExtensionMetroVs2012.vsix。只不过呢,这个东东怎么用还真是不清楚,反正和VS2015使用方式是灰常不一样的,网上也没有找到相关的内容介绍。

2、连接sonarqube服务器

按照如下步骤操作:分析→Manage SonarQube Connections→Connect。在Connect to a SonarQube Server窗口中,输入SonarQube的URI、用户名和密码,点击“Connect”按钮之后,出现图三所示内容,找到对应的项目,右键bind,绑定到服务器上。此时会在解决方案下出现名为“SonarQube”的文件夹,里面包含SolutionBinding.sqconfig和TGB-ITOO5.0BasicCSharp.ruleset两个文件。

图一

图二

图三

图四

3、关闭具体规则

此时,您可能要问啦:将VS解决方案绑定到SonarQube项目上有什么用呢?

此操作自动更新解决方案的规则集,并将解决方案附加到所需的Roslyn分析仪。此时,你可以在规则集编辑器中禁用任何规则,甚至更改默认严重性。规则集编辑器就是在连接sonarqube服务器时,自动生成的TGB-ITOO5.0BasicCSharp.ruleset文件。

   
17235 次浏览  评价: 差  订阅 捐助
相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号