在之前的公司, 看到有用过代码扫描工具, 扫描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 FilesJavajre1.8.0_291lib
然后连接数据库 , 参考 : 用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)本地数据库连接设置
设置 confsonar.properties 数据库连接
sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar
sonar.jdbc.username= sonar
sonar.jdbc.password= sonar
3.本地环境变量设置
注意, 有的地方有 分号 ";" 不同配置之间用 分号隔开.
系统环境变量 |
值 |
说明 |
SONAR_RUNNER_HOME |
C:sonar-scannersonar-scanner-4.6.0.2311 |
扫描器 客户端路径 |
;%SONAR_RUNNER_HOME%in |
||
;C:sonarqubesonarqube-8.8.0.42792in;C:sonarqubesonarqube-8.8.0.42792inwindows-x86-64 |
扫描 服务端路径 |
|
CLASSPATH |
; D:sqljdbc4sqljdbc42.jar |
连Sql数据库使用 |
Path |
; C:Program Files (x86)Microsoft Visual Studio2017CommunityMSBuild15.0Binamd64 |
选择本地C#编译器 |
全局重要的配置在 C:sonarqubesonarqube-8.8.0.42792conf 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:历史资源旧的资源1XXXManager.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:本地代码管理LocalVSCode2014Year2014CSharpPerfonsalRegexFormTemplateRegexFormTemplate.sln /t:Rebuild
SonarScanner.MSBuild.exe end /d:sonar.login="e1b61fa834baff1d0249deddaba5887afcc00473"
++==================================扫描ts=====================++
#参见本地文件 I:ImportCode_SJClientocal_xiang
sonar-scanner -D.login=7486a5f999c18d47063b7482721a3eb036e1a2cf
需要在 该文件夹 安住shift 右键 ,在 powershell窗口 命令中打开 ,并且设置 “sonar-project.properties” 文件
文件内容格式为