在之前的公司, 看到有用过代码扫描工具, 扫描C#代码, 最近公司也有考虑做这个,于是我便独自研究了一下,这里给大家做个分享

网上找了很多资料, 主要有以下问题:

1. Sonarqube用的是 旧版本,(现在更新到8.x版本,部分安装和使用, 和以前的旧版本有很大的区别)

2.介绍扫描java,php,pathon的,没有介绍扫描C#的

3.集成的是本地的服务,没有集成SqlServer数据库,以前的文档大多是集成MySql数据库

4."参考资料"大都发布于2019年之前的博客 那时候的版本,与现在的版 在实际使用过程中有很大的差别

 

 

 

 

 1.下载和安装 sonarqube 和 sonar-scanner

 

https://www.cnblogs.com/weschen/p/5999874.html

https://www.cnblogs.com/danzhang/p/5205610.html

 

 

1.1)SonarQube  8+下载    http://www.sonarqube.org/downloads/ 

1.2)sonar-scanner 历史版本下载

https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

 

1.3)java 1.8jdk

  载和配置JDK http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html 

 

http://jdk.java.net/java-se-ri/11

 

 

 

2.配置sqlserver数据库

2.1)Jar包设置

  参考 下面这个, SonarQube-7.9.1+SQL Server2017在Windows环境下的安装与配置

 

解包后, 我是放在本地文件夹 : C:\Program Files\Java\jre1.8.0_291\lib

 然后连接数据库 , 参考 :   用JDBC连接SQL Server2017数据库

 

2.2)数据库设置

本地创建数据库 sonar , 用户名 sonar 密码 sonar ,并且给管理员权限

 在sqlserver sonar 库中执行以下sql

 

ALTER DATABASE Sonar SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;

ALTER DATABASE Sonar COLLATE Chinese_PRC_CS_AS

 

 

2.3)本地数据库连接设置

设置  \conf\sonar.properties 数据库连接

sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar
sonar.jdbc.username= sonar
sonar.jdbc.password= sonar

 

 3.本地环境变量设置

 注意, 有的地方有 分号 ";" 不同配置之间用  分号隔开.

系统环境变量

说明

SONAR_RUNNER_HOME

C:\sonar-scanner\sonar-scanner-4.6.0.2311

扫描器   客户端路径

 

;%SONAR_RUNNER_HOME%\bin

 

 

;C:\sonarqube\sonarqube-8.8.0.42792\bin;C:\sonarqube\sonarqube-8.8.0.42792\bin\windows-x86-64

扫描
  服务端路径

CLASSPATH

; D:\sqljdbc4\sqljdbc42.jar

连Sql数据库使用

Path

; C:\Program
Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64

选择本地C#编译器

 

全局重要的配置在  C:\sonarqube\sonarqube-8.8.0.42792\conf\
sonar.properties

 

 

 

  

 

4.扫描设置

 

4.1   
扫描 C# 代码 (sln解决方案)

 

4.2   
扫描ts 代码

       https://blog.csdn.net/liumiaocn/article/details/102670480/   2种方式

 

 

 

 

 

 

 

C#

ProjectManagerSolution

f973e7702707f26b9f14aa53a012dbe2da9d5961

 

LocalQD

7486a5f999c18d47063b7482721a3eb036e1a2cf

 

 

 

 

 

 

 

 

 

 

 

 

 

 

++===============================扫描C#========================++

SonarScanner.MSBuild.exe
begin /k:" XXXManager " /d:sonar.host.url="http://localhost:9000"
/d:sonar.login="f973e7702707f26b9f14aa53a012dbe2da9d5961"

 

MsBuild.exe
G:\历史资源\旧的资源1\XXXManager.sln /t:Rebuild

 

SonarScanner.MSBuild.exe
end /d:sonar.login="f973e7702707f26b9f14aa53a012dbe2da9d5961"

 

 

++===============================扫描C#=======================++

SonarScanner.MSBuild.exe
begin /k:"LocalProject" /d:sonar.login="e1b61fa834baff1d0249deddaba5887afcc00473"

msbuild.exe
E:\本地代码管理\LocalVSCode\2014Year\2014CSharp\Perfonsal\RegexFormTemplate\RegexFormTemplate.sln
/t:Rebuild

SonarScanner.MSBuild.exe end
/d:sonar.login="e1b61fa834baff1d0249deddaba5887afcc00473"

 

 

 

++==================================扫描ts=====================++

#参见本地文件
 I:\ImportCode_SJ\Client\ocal_xiang

sonar-scanner
-D.login=7486a5f999c18d47063b7482721a3eb036e1a2cf

需要在
该文件夹 安住shift 右键 ,在 powershell窗口 命令中打开 ,并且设置  “sonar-project.properties” 文件

文件内容格式为