SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践

目录

  • 一、前言
  • 二、系统环境
  • 三、Jenkins安装
  • 四、sonarqube安装
    • 4.1 下载地址:
    • 4.2 解压缩zip方式安装
    • 4.3 安装数据库
    • 4.4 配置文件
    • 4.5 启动
  • 五、Jenkins的sonarqube插件安装
    • 5.1 安装官方说明
    • 5.2 插件下载
    • 5.3 Scanner安装
      • 5.3.1 安装组件SonarScanner for .NET
      • 5.3.2 修改配置文件
  • 六、构建项目的配置
    • 6.1 Configure System
      • 6.1.1Jenkins Location设置
      • 6.1.2 SonarQube servers设置
    • 6.2 Global Tool Configuration
      • 6.2.1 JDK配置
      • 6.2.2 Git配置
      • 6.2.3 MSBuild配置
      • 6.2.4 SonarScanner for MSBuild配置
      • 6.2.5 SonarQube Scanner配置
  • 七、构建项目的配置
    • 7.1 源码管理
    • 7.2 Build Steps
      • 7.2.1 步骤一 SonarScanner for MSBuild - Begin Analysis
      • 7.2.2 步骤二 Build a Visual Studio project or solution using MSBuild
      • 7.2.3 步骤三 SonarScanner for MSBuild - End Analysis
  • 八、执行构建项目

一、前言

本文主要内容是搭建Jenkins 持续集成环境,配置.NET web项目的CI(自动化部署没有做)并通过sonarqube插件实现源代码质量检测,网上针对.NET项目的该类实践介绍不多。本文内容根据网络搜索和我的实战操作记录整理而成,踩坑无数,最后成功,希望对大家有用。

二、系统环境

操作系统:Windows10
Jenkins:2.394
sonarqube:9.9
测试项目为:.Net Core 桌面端项目,不需要IIS

三、Jenkins安装

参考我的另一篇文章,这里不再赘述,Windows环境安装更简单,也可以参考下文。
Centos+Gitlab+Jenkins 针对.NET项目持续集成环境搭建和自动化部署

这里注意一点,安装完Jenkins后建议修改工作空间workspace,默认的workspace地址在一个旮旯角落的位置地址看着很不舒服,趁工作没有开始,第一时间换掉(切记一定要先完成首次登录),换掉后会重置用户信息,也就是再来一次“首次登录”,一定要完成,不要搞到一半把页面关了,不要问为什么?问我也不会告诉你我就是因为这个重新又装了一遍Jenkins

四、sonarqube安装

4.1 下载地址:

https://www.sonarsource.com/products/sonarqube/downloads/

4.2 解压缩zip方式安装

https://docs.sonarqube.org/latest/setup-and-upgrade/install-the-server/#installing-sonarqube-from-the-zip-file

4.3 安装数据库

数据库我安装的是PostgreSQL
在数据库里建一个数据库实例命名为sonarqube

4.4 配置文件

配置文件位置
C:\DevelopsRepos\sonarqube-9.9.0.65466\conf\sonar.properties

配置文件要设置的地方(端口号自己按需定义)

# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
#sonar.jdbc.username=
#sonar.jdbc.password=
sonar.jdbc.username=postgres
sonar.jdbc.password=111111

#----- PostgreSQL 11 or greater
# By default the schema named "public" is used. It can be overridden with the parameter "currentSchema".
#sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema

# Binding IP address. For servers with more than one IP address, this property specifies which
# address will be used for listening on the specified ports.
# By default, ports will be used on all IP addresses associated with the server.
#sonar.web.host=0.0.0.0
#sonar.web.host=127.0.0.1
sonar.web.port=8088
#sonar.web.context=/sonarqube

# Elasticsearch port for incoming HTTP connections. Default is 9001. Use 0 to get a free port.
# As a security precaution, should be blocked by a firewall and not exposed to the Internet.
#sonar.search.port=9001
sonar.search.port=8081

4.5 启动

进入sonarqube程序主目录,C:\DevelopsRepos\sonarqube-9.9.0.65466\bin\windows-x86-64,双击StartSonar.bat文件,启动StartSonar。

输入地址检查sonarqube是否正常运行
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第1张图片

五、Jenkins的sonarqube插件安装

5.1 安装官方说明

https://docs.sonarqube.org/latest/analyzing-source-code/scanners/jenkins-extension-sonarqube/

5.2 插件下载

在Jenkins Plugins管理中下载SonarQube Scanner for Jenkins插件
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第2张图片

5.3 Scanner安装

5.3.1 安装组件SonarScanner for .NET

https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner-for-dotnet/
下载完后解压到目录
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第3张图片

5.3.2 修改配置文件

配置文件的路径如下图
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第4张图片
修改为:

#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here

#----- Default SonarQube server
sonar.host.url=http://localhost:8088

sonar.scm.provider=git

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

如果不设置sonar.scm.provider=git可能引发报错:
SCM provider autodetection failed. Both svn and git claim to support this project. Please use sonar.scm.provider to define SCM of your project.

六、构建项目的配置

6.1 Configure System

6.1.1Jenkins Location设置

配置本地地址和端口号
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第5张图片

6.1.2 SonarQube servers设置

SonarQube servers属性设置,sonar的token点击添加按钮,类型选Secret Text
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第6张图片

sonar的令牌(tonken)生成
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第7张图片

6.2 Global Tool Configuration

6.2.1 JDK配置

SonarQube适配的JDK是哪个版本请在官网上查阅,根据下载的版本找对应版本的JDK
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第8张图片

6.2.2 Git配置

Git是必须要安装的
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第9张图片

6.2.3 MSBuild配置

SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第10张图片

6.2.4 SonarScanner for MSBuild配置

SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第11张图片

6.2.5 SonarQube Scanner配置

SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第12张图片

七、构建项目的配置

7.1 源码管理

记得要添加凭据
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第13张图片

7.2 Build Steps

编排流水线步骤

7.2.1 步骤一 SonarScanner for MSBuild - Begin Analysis

Project key和Project name可以自己定义
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第14张图片

7.2.2 步骤二 Build a Visual Studio project or solution using MSBuild

SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第15张图片

Command Line Arguments参数语法

/t:Rebuild
/p:Configuration=Release
/p:MonoSymbolArchive=False
/p:VisualStudioVersion=17.0
/p:OutDir=C:\ProgramData\Jenkins\.jenkins\workspace\BuildForPlugIn

7.2.3 步骤三 SonarScanner for MSBuild - End Analysis

SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第16张图片

八、执行构建项目

构建成功后,可以在sonarqube里看到检查结果
SonarQube学习笔记一:Jenkins+Sonar针对.NET项目源代码检测实践_第17张图片

你可能感兴趣的:(Devops,jenkins,运维,sonarqube)