使用 SonarQube 来分析 NetCore 项目代码问题(2)

如果你需要分析项目的话,有两种选择,第一种就是使用工具1,而如果你是拥有 DotNet Core 2.1 环境的话可以使用 Global Tool 来直接安装分析器。

2.1 安装 dotnet scanner

参照 Sonar 官方的文档 ,运行命令行工具,并且键入以下命令:

dotnet tool install --global dotnet-sonarscanner --version 4.3.1

就成功安装好 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:"TestProject" /d:sonar.host.url="http://192.168.100.107:9000" /d:sonar.login="cfe594fd605f2e4821835e43c69da82e489c2f23"
dotnet build
dotnet sonarscanner end /d:sonar.login="cfe594fd605f2e4821835e43c69da82e489c2f23"

这里的 /k 指定你的项目,/d 这些参数分别是你 Sonar 的地址与你刚才生成的 Token。

动图在这里:

img

2.3 查看结果

现在来到 Sonar 的站点就可以看到我们刚刚分析的结果啦。

1530079707597

可以看到说我有一个 BUG。

1530079727905

3.汉化

可能有的朋友需要中文界面,这个在 Sonar 社区里面提供了中文插件,地址如下 https://github.com/SonarQubeCommunity/sonar-l10n-zh。你可以根据你的 Sonar 版本来选择下载安装哪一个版本的插件,博主目前是基于 Sonar 的 7.1 镜像的,所以下载的是 1.21 版本。

下载完成之后,使用在之前运行容器的时候,加上 -v 参数,将容器目录 /opt/sonarqube/extensions/plugins 映射到你宿主机来,将你的这个文件拷贝到映射好的目录之下,然后重启 Sonar 容器即可。

如果你是使用的 Docker-Compose 文件来运行的容器,只需要找到相应的卷,比如说博主插件的数据卷目录在

/var/lib/docker/volumes/docker-ymls_sonarqube_extensions/_data 里面,我直接拷贝过去重启容器即可,大家的目录路径可能不一样,使用 docker volume ls 命令可以看到存在的数据卷,比如说我的:

DRIVER              VOLUME NAME
local              09d0144ebeb8fd9dc382bb14f33d35e156c6e7f29dcfa42ac52f2b82422fab98
local              2c6c4d351a919c9550de94797ce77805fbe178c9226e71bf99c07c44fd303af1
local              c8b5b6cd301d4cea2e64866e12a9cf6a2bb4e257e5875449f62dede59ebc52c7
local              docker-ymls_postgresql
local              docker-ymls_postgresql_data
local              docker-ymls_sonarqube_bundled-plugins
local              docker-ymls_sonarqube_conf
local              docker-ymls_sonarqube_data
local              docker-ymls_sonarqube_extensions
local              fd1127a3cec43dc992cbf0eefd053bd9dd8f3e93dc9fb0348c70048846f82308
local              portainer_data

可以看到插件目录是放在 docker-ymls_sonarqube_extensions 这个数据卷里面的。

汉化完成的界面如下:

使用 SonarQube 来分析 NetCore 项目代码问题

4.结语

后面会分享如何与 Jenkins + Git(Gogs) 来进行集成的。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12696.html