Sonarqube C#静态代码规范检查(一)

使用说明

代码规范对于每个开发来说重要也重要,说不重要其实也没那么重要,简单点的vs的code analysis也能提供很多的建议,重量级一点的Resharper不仅能提供建议,还提供了更方便快捷的一键重构工具,当我需要一个可以和Gitlab集成并且能自动化分析各个项目代码质量的时候,以上工具可能只侧重在编码阶段给开发人员及时的提醒,并不能满足我的需要,所以就找到了Soanrqube的这个工具。

 

以下介绍docker环境下的安装使用(部分翻译自官方文档)

1.从官方下载镜像

Docker官方镜像说明地址:https://hub.docker.com/_/sonarqube/

以下拉取最新的8.0的社区版本的镜像

docker pull sonarqube:8-community-beta

你也可以下载默认最新的稳定版本的镜像

docker pull sonarqube

2.快速开始使用

以下蒋向您展示如何快速运行演示实例,当你准备安装一个更稳定的版本时,请花一点时间阅读配置部分。

docker run -d --name sonarqube -p 9000:9000 sonarqube

默认的登陆账号是admin,密码也是admin

浏览器打开:http://localhost:9000 等待自动配置完成就可以登陆了。

3.分析C#代码

分析之前需要安装sonarscanner

dotnet tool install --global dotnet-sonarscanner

平台里创建新项目

 

 创建一个token,用于上传代码分析报告

 

 拷贝生成的token备用

 

 创建一个.net core的项目,这里我创建了一个web api的项目,新建sonar.bat脚本文件

 

 sonar.bat脚本文件内容如下:

dotnet sonarscanner begin /k:"WebTest" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="40aa03b189beb63784574556e6e0c6c632668cf9"
dotnet build
dotnet sonarscanner end /d:sonar.login="40aa03b189beb63784574556e6e0c6c632668cf9"

这里几个重要的参数

红色部分:/k为平台创建项目时的项目命名

黄色部分:为创建项目时的token

4.为sonarqube配置postgresql数据库

// 获取镜像
docker pull postgresql
// 启动postgresql容器 docker run
--name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -e POSTGRE_DB=sonar -p 5431:5432 postgres
// 启动sonarqube docker run
--name sonar8 --link db -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -p 9001:9000 sonarqube:8-community-beta

 

5.docker-compose直接运行实例 

docker-compose.yml 文件内容

version: "2"

services:
  sonarqube:
    image: sonar8
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    environment:
      - sonar.jdbc.url=jdbc:postgresql://db:5432/sonar
    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions

  db:
    image: postgres
    networks:
      - sonarnet
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

networks:
  sonarnet:
    driver: bridge

volumes:
  sonarqube_conf:
  sonarqube_data:
  sonarqube_extensions:
  postgresql:
  postgresql_data:

 执行运行命令

docker-compose up -d

 

posted @ 2019-10-29 13:15  阿弥陀佛呵呵哒  阅读(1253)  评论(0编辑  收藏  举报