SonarQube安装和使用教程(分析C#项目版)

前言

本机安装环境为Windows10+PostgreSQL 15.3+jdk 17+SonarQube10.4

在安装SonarQube前需要安装好第三方数据库(第三方支持的数据库有Oracle、 PostgreSQL 和 microsoftsqlserver,8.0之后据说不再支持mysql),因为在此之前我已经安装过PostgreSQL,因此用的PostgreSQL,版本为15.3。

同时需要搭建好jdk环境,版本最好是11或以上,我在此之前已安装的jdk版本为17。

数据库和jdk安装好以后开始安装SonarQube,具体步骤如下。

安装步骤

1.打开PostgreSQL,输入密码登录。新建数据库并将其命名为“sonarqube”,在其下新建Schema并命名为“my_schema”。

2.上述数据库建好后,开始安装SonarQube,先在官网上下载安装包:Download | SonarQube | Sonar (sonarsource.com)

我下载的最新版10.4,Community Edition。

3.解压安装包,打开目录conf文件夹下的“sonar.properties”,对其进行如下配置。

4.修改配置文件后,进入bin目录下,由于本机为Windows10系统,因此进入windows-x86-64目录,点击StartSonar.bat开始安装,安装完成后显示“Process[ce] is up   SonarQube is operational”则表示安装成功。如点击StartSonar.bat后闪退可参考文章最后问题总结。

5.安装成功后,即可打开SonarQube的Web界面,其网址为起初配置的“http://localhost:9000”,初始账号和密码为“admin”,登录成功后界面如下。

6.SonarQube安装成功后,开始安装Sonar Scanner,因此要扫描的为C#项目,所以需要安装对应的Sonar Scanner,在这里安装的为Sonar Scanner for .NET,同样是在官网上下载安装包。

SonarScanner for .NET (sonarsource.com)

注意:这里下载的时候要注意下载版本的选择,需要和电脑上MSBuild版本相对应,可通过“msbuild -version”查看本机上MSBuild版本,如果查找不到,需要先在环境变量中添加,这里我的MSBuild.exe所在目录为“C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin”。

我这里安装的MSBuild版本为17

在官网下载的Sonar Scanner for .NET版本为5.13。

7.将下载的Sonar Scanner for .NET安装包解压,打开“SonarQube.Analysis.xml”配置文件,修改其配置如下。

这里的sonar.password即上面第一次登录SonarQube的Web界面后设置的新密码。

8.配置完成后,进入要分析的项目根目录,在此根目录下打开控制端,在CMD命令下运行:

SonarScanner.MSBuild.exe begin /k:"ProjectTest" /n:"ProjectTest" /v:"1.0"

(如运行该命令出错,可能是因为没有启动StartSonar.bat或没有启动成功)

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

/name(简写n):对应projestName,即项目名称。建议使用完整的项目名称。这里/k和/n应尽量保持相同。

/version(简写v):对应projectVersion,即项目的版本。项目在不同的时期版本也是不一样的,如果方便,可以在SonarQube的服务器中查看到不同的版本代码其中问题的变化。

执行成功后显示如下。

9.上述命令执行成功后,在CMD命令下运行:

MSBuild.exe /t:Rebuild (默认为Debug模式)

或者

MSBuild.exe /t:Rebuild /p:Configuration=Release (指定编译模式)

或者

MSBuild.exe D:\hcloud\Common\Common.sln /t:Rebuild (指定具体的.sln解决方案)

执行成功后显示如下。显示0个错误,警告不影响。

10.上述命令执行成功后,在CMD命令下运行:

SonarScanner.MSBuild.exe end

在输入该命令前,先登录SonarQube的Web界面。如执行该命令出错,可能是因为未启动StartSonar.bat或登录SonarQube的Web界面。

11.上述命令执行成功后,即可在SonarQube的Web界面看到代码分析结果。

问题总结

自己在安装中也遇到了一些问题,在这里总结一下我的解决方案希望能帮助到大家,但也需要根据具体情况分析,不排除其它的原因和解决方案。

1.启动StartSonar.bat时闪退,这一步可能是因为jdk环境出现了问题。如果jdk配置确认没问题,可能是环境变量配置出现了问题。可以通过“where java"命令或者打开系统环境变量查看一下java的路径。一般电脑会自动在环境变量里添加java的路径,(下面第二个,也就是C盘路径那个)但是我自己配置的是第一个(也就是D盘路径那个),即使自己在环境变量里添加了它的路径,但电脑在查找java时,会在环境变量里按顺序查找,所以会先找最上面那个,这里可以在环境变量里把自己配置的jdk路径(红色记号1)上移到电脑自动添加的路径(红色记号2)上面,或者直接把电脑自动添加的路径(红色记号2)删除。

这里我调整过顺序后,在输入”where Java“时,可以看到D盘路径在C盘路径上面。这个时候再点击StartSonar.bat,则启动成功。

2.第一次启动StartSonar.bat成功,后来又不成功了,出现如下问题。

这里我通过查找后发现可能是连接池的问题,可重启电脑解决问题,或过一段时间再启动。(有更好的解决方案也欢迎大家分享)

3.Sonar Scanner安装完成后,在项目目录下输入MSBuild.exe /t:Rebuild 命令时报错,显示”未能加载文件或程序集“microsoft .build.utilities.core, version=14.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a”或它的某一个依赖项。“这类问题,这可能是因为MSBuild版本不对应问题,即上面提到过的Sonar Scanner下载版本问题。我在下载中就遇到了这种问题,原因是我最开始下载的是Sonar Scanner最新版,后来发现我又重新下载的Sonar Scanner5.13版,解决了这个问题。

4.之前SonarQube的Web界面登录成功,后续再登录时出现administration问题,可以重新用最初的账号“admin”,密码“admin”试试。

希望以上内容能对大家有所帮助,如有问题欢迎指正!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值