sonar7 以后版本,默认的 sonar-scanner 加 sonar-project.properties 配置文件,扫描c#的项目回出现,扫描不报错,但是显示结果为空.
jenins 在linux 环境中要想扫描 c#项目必须使用 dotnet-sonarscanner 扫描
1.1 安装 安装dotnetcore
如果你需要分析项目的话,有两种选择,第一种就是使用工具1,而如果你是拥有 DotNet Core 2.1 环境的话可以使用 Global Tool 来直接安装分析器。
https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos
下命令:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
安装 SDK
.NET Core SDK 使你可以通过 .NET Core 开发应用。 如果安装 .NET Core SDK,则无需安装相应的运行时。 若要安装 .NET Core SDK,请运行以下命令:
sudo yum install dotnet-sdk-3.1
2.1 安装 dotnet scanner#
参照 Sonar 官方的文档 ,运行命令行工具,并且键入以下命令:
dotnet tool install --global dotnet-sonarscanner
就成功安装好 Sonar Scanner 了。
2.2 分析项目#
跳转到你需要分析的项目的根目录,这里我新建了一个测试用的控制台程序,代码很简单,传入了一个 NULL 对象,并且判断这个变量不等于空。
using System; namespace TestConsoleApp { class Program { static void Main(string[] args) { string c = null; if (c != null) { Console.WriteLine("不可能执行的代码."); } Console.WriteLine("Hello World!"); } } }
在命令行工具当中分步执行以下命令:
dotnet-sonarscanner begin /k:"xxx-xxxxx-master-dotnet-test" /n:"xxxx-xxxxx-master-dotnet-test" /d:sonar.host.url="http://10.48.64.201:9000" /d:sonar.login="cb4fff66d271aa5eb7dd2b3b6757c654f31c3a40"
dotnet build
dotnet-sonarscanner end /d:sonar.login="cb4fff66d271aa5eb7dd2b3b6757c654f31c3a40"
这里的 /k 指定你的项目,/d 这些参数分别是你 Sonar 的地址与你刚才生成的 Token。
2.3 查看结果#
现在来到 Sonar 的站点就可以看到我们刚刚分析的结果啦
来源:oschina
链接:https://my.oschina.net/u/4072296/blog/4332800