Sonar for C# oracle数据库

Sonar介绍

    近期了解到一个代码自动检测工具Sonar,从网上查找的相关介绍如下:

SonarQube(sonar)是一个开源平台,用于管理源代码的质量。 SonarQube不只是一个质量数据报告工具,更是代码质量管理平台。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。 SonarQube可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

(1) 不遵循代码标准
SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
(2) 潜在的缺陷
SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
(3) 糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
(4) 重复
显然程序中包含大量复制粘贴的代码是质量低下的,SonarQube可以展示 源码中重复严重的地方。
(5) 注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
(6) 缺乏单元测试
SonarQube可以很方便地统计并展示单元测试覆盖率。
(7) 糟糕的设计
通过SonarQube可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过SonarQube可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。
————————————————
原文链接:https://blog.csdn.net/cly125521/article/details/100879520

 

部署安装

     传统的代码走查等方式只能被动的发现部分问题,而自动化检测工具无疑能够极大提升整体的代码质量,于是我迫不及待的从官网获取了相关信息并在本地安装试用。

下载最新版本sonarqube,下载地址 https://www.sonarqube.org/,当前最新的版本为7.9.1

下载代码分析器,当前版本要求msbuild在12以上版本,对应的vs应在vs2015以上版本,我本机使用vs2017.

分析器下载地址:

https://github.com/SonarSource/sonar-scanner-msbuild/releases/download/4.7.1.2311/sonar-scanner-msbuild-4.7.1.2311-net46.zip

下载并安装jdk,要求jdk版本在java11以上。

上述软件版本一定要对应,否则会有很多问题,例如我本机已安装了jdk,但是是1.8的版本,无法启动sonar管理端。

msbuild必须是12以上版本,一开始使用的是vs2012,发现问题后修改为vs2017

由于分析器使用java进行开发的,所以执行分析器的机器必须也安装java11以上版本。

本机环境:window 7 旗舰版,已安装了oracle11g,所有直接准备使用oracle数据库。

只要保证java环境正确,其他不需要任何环境变量相关的设置,在cmd中输入java -version命令验证

 

初始化数据库

创建表空间,创建用户,分配权限。

create tablespace sona datafile 'E:\app\Administrator\oradata\orcl\sona.dbf' 
size 30m autoextend on next 10m;

create user sona by sona 
default tablespace sona ; 
grant connect,resource to sona ; 

 

SonarQube配置信息

SonarQube管理端的配置比较简单,打开sonarqube-7.9.1\conf\sonar.properties将内容替换成如下:

sonar.jdbc.url=jdbc:oracle:thin:@localhost/orcl
sonar.jdbc.username=sona
sonar.jdbc.password=sona

这里注意配置文件节点的顺序,一开始jdbc.url是在最下面的,配置后总是报数据库无法连接的错误,仔细看了下日志说用户名密码错误,反复确认用户名密码没有问题,猜测是不是跟顺序有关,调整一下后ok了,不明白为什么按一般逻辑来说不应该有这样的问题。

分析器配置

找到解压后的sonar-scanner-msbuild-4.7.1.2311-net46/SonarQube.Analysis.xml,修改配置信息如下:

  <Property Name="sonar.host.url">http://localhost:9000</Property>
  <Property Name="sonar.login">admin</Property>
  <Property Name="sonar.password">admin</Property>
  <!--这里是配置管理端,连接管理端进行信息传输 -->

  <Property Name="sonar.jdbc.url">jdbc:oracle:thin:@localhost:1521:orcl</Property>
  <Property Name="sonar.jdbc.username">sona</Property>
  <Property Name="sonar.jdbc.password">sona</Property>
 <!--这里是配置数据库连接信息 -->

xml里面已经有这些信息了,需要把注释段去掉,按自己的需求进行配置即可。

执行项目分析

参考网上别人分享的配置文件,根据自己项目修改后保存为bat可直接使用

echo off
D:\sonar-scanner-msbuild-4.6.2.2108-net46\MSBuild.SonarQube.Runner.exe begin /k:"prj-key" /n:"prj-name" /v:"1.0"

::编译代码
set "msbuildPath=D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\MSBuild.exe"
if exist "%msbuildPath15%"  set "msbuildPath=%msbuildPath15%"
if "%msbuildPath%" == "" goto nomsbuild
"%msbuildPath%" /t:Rebuild
D:\sonar-scanner-msbuild-4.6.2.2108-net46\MSBuild.SonarQube.Runner.exe end

echo 扫描完成
pause

:nomsbuild
echo 没有找到MSBUILD
pause
:exit

替换D:\sonar-scanner-msbuild-4.6.2.2108-net46\MSBuild.SonarQube.Runner.exe 为你本机的路径。/k:"prj-key" /n:"prj-name" /v:"1.0"  分别是/k项目的主键(自己定义不重复就行),/n项目名称,/v项目的版本号,根据自己的项目情况修改。

分析完成如下图:

查看代码质量分析情况

浏览器输入管理端地址:http://localhost:9000/projects,即可查看代码分析结果。

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值