.net持续集成sonarqube篇之sonarqube安装与基本配置

系列目录html

Sonarqube下载与安装

Sonarqube下载地址是:https://www.sonarqube.org/downloads/下载版本有两个,一个是长期支持版,另外一个是最新版,此处安装的是最新版,目前版本是7.3,下载的时候点击醒目的蓝色按钮便可(此时下载的是社区版),下面有三个无底色按钮下载连接,分别对应的是开发者版,企业版和数据中心版,这些版本都不是免费版,须要获取Licence key方可以使用.目前起步阶段,使用社区版就Ok了.java

注意 Sonarqube是基于java语言开发的,所以运行以前必须先安装Jremysql

Sonarqube支持Windows,mac和linux,可是安装包并不区分平台,也就是这三个平台下载包是同样的,只是启动方式不一样.linux

下载完成全将下载的压缩包解压,进入bin目录,能够看到这个目录下有数个文件夹,从文件夹的名称很容易看出它们对应的是windows,mac,linux平台下的启动目录,因为咱们是在windows平台下运行的,所以进入windows-x86-64目录(固然,若是你的电脑是32位系统,则进入windows-x86-32目录)此目录下面有不少脚本文件,咱们双击StartSonar.bat这个批处理文件来运行windows下的sonarqube,启动须要数十秒时间,请耐心等等.当看到控制台最后一句是SonarQube is up说明sonarqube已经成功启动.此时在浏览器地址栏输入localhost:9000就能够进入Sonarqube web管理页面.web

avatar

这个页面是一个关于Sonarqube的介绍页面,从这里能够很清析地看到Sonarqube支持的语言,点击Read Documentation按钮能够进入Sonarqube的帮助文档页面.sql

Sonarqube基本配置

上一节咱们已经成功启动Sonarqube,然而仅仅把Sonarqube启动起来并无什么做用,咱们还须要进行数据库配置和扫描器(Sonarqube对特定语言的扫描工具称为扫描器)配置才能把数据接入Sonarqube管理平台.数据库

数据库配置

Sonarqube支持内嵌数据库,mysql,oracle 11g/12c,sql server 2014/2016,postgresql 9.3+,因为oracle须要提供单独的驱动比较麻烦,这里就以mysql为例讲解.c#

咱们进入Sonarqube目录下的conf目录,下面有一个sonar.properties文件,咱们用记录本打开它,咱们进入mysql栏把sonar.jdbc.url注释取消掉,并加上如下代码windows

sonar.jdbc.username=root
sonar.jdbc.password=
sonar.sorceEncoding=UTF-8
sonar.login=root
sonar.password=

Sonarqube默认的数据库名为sonar,须要咱们手动建立,咱们在本身经常使用的mysql管理工具里新建便可.api

以上是关于sonarqube mysql链接字符串的配置.用户名和密码读者根据实际状况填写

以上笔者使用的是Xampp带的mysql的默认配置,用户名为root,密码为空,注意这里的password不能写为"",而是什么都不写留空,固然若是有密码就填写实际密码.

Sonarqube 7.3仅支持mysql 5.6及以上8.0如下版本,也就是说不支持8.0版本,须要特别注意.

Sonarqube也支持内嵌数据库,然而内嵌数据库不便于管理和迁移,强烈不建议在生产环境使用内嵌数据库.

咱们从新启动Sonarqube,而后进入web管理界面,此时咱们打开mysql管理工具,能够看到sonarqube在sonarqube库下建立了不少表.

安装配置Msbuild Scanner

上一节咱们说过,Sonarqube须要使用Scanner来扫描代码数据以供Sonarqube管理平台使用,这里咱们下载 msbuild scanner扫描工具对c#代码进行扫描.

咱们把Sonarqube web管理界面往下拉到最底,会看到一拍图标

avatar

咱们点击第一个图标,也就是Visual Studio图标,会进入一个页面

avatar
图示部分为下载连接,咱们选择.net framework 4.6+

注意,这里下载连接的名称虽然是for .net framework 4.6+,实际上仍然支持.net 4.0及以上版本,并非只支持.net 4.6以上版本.

下载完成后,咱们把压缩包解压到一个目录,并把目录地址添加到系统环境变量里.

一样,为了方便使用,咱们也须要把msbuild.exe添加到环境变量中,若是你的系统中安装的visual Studio开发工具,则Visual studio中会自动包含一个msbuild.exe咱们找到它的路径添加到系统环境变量path中.

配置SonarQube.Analysis.xml文件

因为Scanner要经过rest api方式向服务器提交数据,这里须要对Sonarqube web服务器地址和用户名进行配置才能正常提交数据,咱们打开刚解压的目录,找到SonarQube.Analysis.xml文件,添加如下三行配置便可

<Property Name="sonar.host.url">http://localhost:9000</Property>

  <Property Name="sonar.login">admin</Property>
  <Property Name="sonar.password">admin</Property>

以上配置很容易理解,url为Sonarqube服务器地址,下面为登录名和密码(Sonarqube默认带一个管理员帐号,用户名为admin密码也是admin,后面咱们会讲在生产环境中如何更改admin密码)

再次回到刚才的下载页面,定位到usage栏,能够看到有一个简短的示例代码以下

SonarScanner.MSBuild.exe begin /k:"project-key"
MSBuild.exe /t:Rebuild
SonarScanner.MSBuild.exe end

咱们依照这段代码的结构,对本地的一个项目进行编译(能够是任意c#项目),进入项目sln或者csproj所在的文件夹下依次执行如下代码

SonarScanner.MSBuild.exe begin /k:"mygetdata" /v:"1.0"
MSBuild.exe /t:Rebuild
SonarScanner.MSBuild.exe end

第二段是执行msbuild,第三段是一个结束标志,没有什么须要详细说明的,关于msbuild构建的详细信息能够查看微软官网,也能够参照本教程其它章节.这里简要介绍下第一段的/k和/v参数,/k为key的缩写,Sonarqube每个项目都要有一个唯一key,key的规则能够本身定,可是须要方便管理,/v为version,若是两个构建的key相同,verison不一样,Sonarqube会生成一个对比以便直观看到两次构建的差别,这样方便管理员查看问题的解决状况.

执行完以上命令后,咱们再进入Sonarqube首页,这时候咱们点击Login按钮登录,只有登录之后才能够看到与项目相关的内容,点击例如后用户名为admin,密码也是admin(前面说过Sonarqube默认会带一个用户名和密码都是admin的帐户,后面咱们会讲如何更改密码以及如何为不一样的开发者分配帐户)

登录之后,就会看到一个以下图所示的界面

avatar

从图中咱们能够看到咱们刚才建立的key 为mygetdata的构建了,从图中能够简要的看到此项目的严重bug,通常bug,代码不规范,代码单元测试覆盖率,代码重复度,代码最后一次分析时间等.

咱们点击mygetdata这个标题,便会进去关于这个构建任务的更为详细信息

avatar

能够看到信息更为详细,切换上面的导航栏能够看到关于某一个维度的更为详细的信息.

图标中的数字大都是能够点击的连接,好比页面中显示bugs为10咱们点击10这个数字能够进入这10个bug的代码详情

avatar