ITPub博客

首页 > IT职业 > IT职场 > 使用 SonarQube 来分析 NetCore 项目代码问题

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

IT职场 作者:cityvag 时间:2021-09-09 09:27:49 0 删除 编辑

0.介绍

Sonar 是一款开源的代码分析工具,可能有很多人已经用过,本篇文章主要是讲解如何在 Docker 里面安装 Sonar 并且用其来分析 .Net Core 项目。

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。

与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

回到顶部这篇文章里面有讲到过,这里就不再多加赘述。

GitHub 上面有一个 docker-compose.yml 文件,你直接通过 Docker-Compose 就可以运行好环境的。

version: "2"services:  sonarqube:    image: sonarqube    ports:
      - "9000:9000"    networks:
      - sonarnet    environment:
      - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins
  db:    image: postgres    networks:
      - sonarnet    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar    volumes:
      - postgresql:/var/lib/postgresql      # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
      - postgresql_data:/var/lib/postgresql/datanetworks:  sonarnet:    driver: bridgevolumes:  sonarqube_conf:  sonarqube_data:  sonarqube_extensions:
  sonarqube_bundled-plugins:  postgresql:  postgresql_data:

将其保存到你的 Linux 服务器上,运行以下命令:

docker-compose up

如果需要重启的话则运行以下命令即可:

docker-compose restart sonarqube

回到顶部Sonar 官方的文档 ,运行命令行工具,并且键入以下命令:

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

就成功安装好 Sonar Scanner 了。

回到顶部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 NAMElocal               09d0144ebeb8fd9dc382bb14f33d35e156c6e7f29dcfa42ac52f2b82422fab98local               2c6c4d351a919c9550de94797ce77805fbe178c9226e71bf99c07c44fd303af1local               c8b5b6cd301d4cea2e64866e12a9cf6a2bb4e257e5875449f62dede59ebc52c7local               docker-ymls_postgresqllocal               docker-ymls_postgresql_datalocal               docker-ymls_sonarqube_bundled-pluginslocal               docker-ymls_sonarqube_conflocal               docker-ymls_sonarqube_datalocal               docker-ymls_sonarqube_extensionslocal               fd1127a3cec43dc992cbf0eefd053bd9dd8f3e93dc9fb0348c70048846f82308local               portainer_data

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

汉化完成的界面如下:

图片描述

回到顶部原文出处

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3518/viewspace-2803282/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-30

  • 博文量
    79
  • 访问量
    742