当前位置:   article > 正文

Windows下.Net项目SonarQube扫描_sonar-scanner for msbuild

sonar-scanner for msbuild

一、SonarQube简介

SonarQube(曾用名Sonar(声纳))是一个优秀的开源代码测试分析工具,支持超过25+种编程语言,对.Net Core当然也支持的。

二、安装

环境安装包括:Java-JDK,SonarQube、sonar-scanner for MsBuild

1.1 Java-JDK安装

Sonar是一款基于JAVA开发的工具,选择合适的windows位数版本下载,安装JDK的过程在此不再叙述,建议安装好后配置需要JAVA_HOME的环境变量,配置环境变量看这里:cmd执行环境配置
下载地址:JDK Download

1.2 SonarQube安装

下载地址:SonarQube Download
这里下载社区版Community
在这里插入图片描述
压缩包解压到喜欢的地方
在这里插入图片描述
进入bin目录,再进入windows-x86-64
在这里插入图片描述
运行StartSnoar.bat,完成SonarQube安装
在这里插入图片描述
如果JDK安装和环境变量正常,SonarQube安装成功如下
在这里插入图片描述
浏览器打开SonarQube配置默认串口9000的网站:http://localhost:9000/about,登录账号密码默认为admin,原本Projects Analyzedwe为0,我这里做了两个项目扫描。在这里插入图片描述
想配置串口可通过conf>sonar.properties配置,去掉#,串口改成其他数字
在这里插入图片描述

1.3 Sonar-Scanner for MsBuild安装

下载地址:Sonar-Scanner for MsBuild Download
压缩包解压,配置解压地址的环境变量即可,环境变量配置不再赘述。
在这里插入图片描述
确认电脑是否安装了MSBuild.exe,它是Visual Studio的编译工具,目录是:Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\amd64,需要配置它的环境变量。

三、选择性配置

选择性配置:数据库配置My SQL、设置SonarQube配置文件sonar.properties、设置Sonar-Scanner for MsBuild配置文件SonarQube.Analysis.xml

3.1 数据库配置

这里配置My SQL,如不配置,SonarQube会默认使用自带的存储,不必担心
打开My SQL,执行以下命令

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
  • 1
  • 2
  • 3
  • 4
  • 5

3.2 设置SonarQube配置文件

数据库的登录名和密码这里为sonar,SonarQube路径找到sonar.properties替换内容,其中sonar.jbc.url是mysql数据库的连接字符串。

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
  • 1
  • 2
  • 3

3.3 设置Sonar-Scanner for MsBuild配置文件

如果修改了关于服务器URL、USER、PASSWORD等和关联数据库,需要修改SonarQube.Analysis.xml文件,要修改的地方只是关于sonarQube服务器的一些配置,,修改如下:

<?xml version="1.0" encoding="utf-8" ?>
<SonarQubeAnalysisProperties  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sonarsource.com/msbuild/integration/2015/1">

  <Property Name="sonar.host.url">http://localhost:9000</Property>
  <Property Name="sonar.login">admin</Property>
  <Property Name="sonar.password">admin</Property>

  <!-- Required only for versions of SonarQube prior to 5.2 -->
  <Property Name="sonar.jdbc.url">jdbc:mysql://localhost:3306/sonar?useUnicode=true;characterEncoding=utf8;rewriteBatchedStatements=true;useConfigs=maxPerformance;useSSL=false</Property>
  <Property Name="sonar.jdbc.username">sonar</Property>
  <Property Name="sonar.jdbc.password">sonar</Property>
</SonarQubeAnalysisProperties>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

四、执行扫描

CMD进入C#项目所在的根目录,逐行执行以下三条命令。

MSBuild.SonarQube.Runner.exe begin /k:"项目键值" /n:"项目名" /v:"1.0"
MSBuild.exe /t:Rebuild
MSBuild.SonarQube.Runner.exe end
  • 1
  • 2
  • 3

参数说明:

/key(简写k):对应projectKey即项目的唯一代码,如两套源代码使用同一个projectKey那扫描的结果将混在一起,所以一个项目需要有一个单独的projectKey

/name(简写n):对应projectName即项目的名称,为项目的一个显示的名称,建立使用完整的项目名称

/version(简写v):对应projectVersion即项目的版本,项目在不同的时期版本也是不一样的,如果方便,可以在sonarQube的服务器中查看到不同的版本代码其中问题的变化
查看分析结果:
在这里插入图片描述

参考

以上为个人整理总结的知识,如有遗漏或错误欢迎留言指出、点评,如要引用,请写引用说明,未经允许谢绝转载。
[1]: https://www.cnblogs.com/CoderAyu/p/9416376.html

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号