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