.net持续集成sonarqube篇之sonarqube安装与基本配置
Sonarqube下载与安装
Sonarqube下载地址是:https://www.sonarqube.org/downloads/下载版本有两个,一个是长期支持版,另一个是最新版,此处安装的是最新版,目前版本是7.3,下载的时候点击醒目的蓝色按钮即可(此时下载的是社区版),下面有三个无底色按钮下载链接,分别对应的是开发者版,企业版和数据中心版,这些版本都不是免费版,需要获取Licence key方可使用.目前起步阶段,使用社区版就Ok了.
注意 Sonarqube是基于java语言开发的,因此运行之前必须先安装Jre
Sonarqube支持Windows,mac和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管理页面.

这个页面是一个关于Sonarqube的介绍页面,从这里可以很清析地看到Sonarqube支持的语言,点击Read Documentation按钮可以进入Sonarqube的帮助文档页面.
Sonarqube基本配置
上一节我们已经成功启动Sonarqube,然而仅仅把Sonarqube启动起来并没有什么作用,我们还需要进行数据库配置和扫描器(Sonarqube对特定语言的扫描工具称为扫描器)配置才能把数据接入Sonarqube管理平台.
数据库配置
Sonarqube支持内嵌数据库,mysql,oracle 11g/12c,sql server 2014/2016,postgresql 9.3+,由于oracle需要提供单独的驱动比较麻烦,这里就以mysql为例讲解.
我们进入Sonarqube目录下的conf目录,下面有一个sonar.properties文件,我们用记录本打开它,我们进入mysql栏把sonar.jdbc.url注释取消掉,并加上以下代码
sonar.jdbc.username=root
sonar.jdbc.password=
sonar.sorceEncoding=UTF-8
sonar.login=root
sonar.password=
Sonarqube默认的数据库名为sonar,需要我们手动创建,我们在自己常用的mysql管理工具里新建即可.
以上是关于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管理界面往下拉到最底,会看到一拍图标

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

图示部分为下载链接,我们选择.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的账户,后面我们会讲如何更改密码以及如何为不同的开发者分配账户)
登陆以后,就会看到一个如下图所示的界面

从图中我们可以看到我们刚才创建的key 为mygetdata的构建了,从图中可以简要的看到此项目的严重bug,一般bug,代码不规范,代码单元测试覆盖率,代码重复度,代码最后一次分析时间等.
我们点击mygetdata这个标题,便会进去关于这个构建任务的更为详细信息

可以看到信息更为详细,切换上面的导航栏可以看到关于某一个维度的更为详细的信息.
图标中的数字大都是可以点击的链接,比如页面中显示bugs为10我们点击
10这个数字可以进入这10个bug的代码详情

.net持续集成sonarqube篇之sonarqube安装与基本配置的更多相关文章
- Dubbo入门到精通学习笔记(五):持续集成管理平台之sonarqube代码质量管理平台的介绍与安装
文章目录 SonarQube的介绍 SonarQube的安装 安装简介 详细安装过程 详细使用过程 SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质 ...
- .net持续集成sonarqube篇之 sonarqube触发webhook
系列目录 WebHook近些年来变得越来越流行,github,gitlab等代码托管平台都提供webhook功能.关于webhook这里不做详细介绍,大家可以参阅读相关互联网书籍或者材料来更深了解.可 ...
- .net持续集成sonarqube篇之 sonarqube与jenkins集成(插件模式)
系列目录 Jenkins通过插件集成Sonarqube 通过上一节我们了解了如何配置以使jenkins ci环境中可以执行sonarqube构建,其实Sonarqube官方也提供了jenkins插件以 ...
- 持续集成工具之jenkins+sonarqube做代码扫描
上一篇我们主要聊了下代码质量管理平台sonarqube的安装部署以及它的工作方式做了简单的描述和代码扫描演示:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13 ...
- Framework项目持续集成(jenkins)及集合SonarQube
目录 Framework项目持续集成及集合SonarQube - 前言 CI/CD是什么 -- jenkins 什么是sonarqube?什么是CodeReview? 什么是sonarqube? 什么 ...
- 持续集成环境Gitlab-CI的官方安装过程解析
持续集成环境是一个非常重要的工具,在分工合作的项目中有着举足轻重的作用.公司最近要用Gitlab,需要配套的持续集成环境.研究了官方的文档,感觉官方的文档不是很明了.各种修改过后终于成功了.为了大家安 ...
- .net持续集成cake篇之cake介绍及简单示例
cake介绍 Cake 是.net平台下的一款自动化构建工具,可以完成对.net项目的编译,打包,运行单元测试,集成测试甚至发布项目等等.如果有些特征Cake没有实现,我们还可以很容易地通过扩展Cak ...
- 持续集成高级篇之基于win32-openssh搭建jenkins混合集群(一)
系列目录 前面的demo我们使用的都是只有一个windows主节点的的jenkins,实际生产环境中,一个节点往往是不能满足需求的.比如,.net项目要使用windows节点构建,java项目如果部署 ...
- 持续集成指南:GitLab 的 CI/CD 工具配置与使用
前言 写代码这项工作,本质就是将工作自动化,减少手工操作提供效率,因为人的本质都是懒狗,程序员也不能例外,为了各种意义的效率提升(懒),我们需要持续集成工具,将代码测试.编译.发布这些重复性很高的工作 ...
随机推荐
- Window文件目录遍历 和 WIN32_FIND_DATA 结构(非常详细的中文注释)
第一部分 *百度百科提供的内容总结:WIN32_FIND_DAT 第二部分 *程序实例 第三部分 *一篇使用FindFirstFile和FindNextFile函数的博文 第一部分 ...
- Qt 5.3更新无数,更改C++控制台输出最为赞(这样就和普通C++ IDE没区别了)
转载请注明文章:Qt 5.3更新无数,更改C++控制台输出最为赞 出处:多客博图 本人觉得有了这个更新,Qt Creator可谓几乎没有缺点了,起码仅仅开发C/C++,是不用再去安装VS了. Qt 5 ...
- SYN1621型 定位定向授时设备
SYN1621型 定位定向授时设备 定位定向授时设备使用说明视频链接: http://www.syn029.com/h-pd-274-0_310_39_-1.html 请将此链接复制到浏览器打开观看 ...
- 玩转java多线程(wait和notifyAll的正确使用姿势)
转载请标明博客的地址 本人博客和github账号,如果对你有帮助请在本人github项目AioSocket上点个star,激励作者对社区贡献 个人博客:https://www.cnblogs.com/ ...
- 【练习题】proj2 字符串压缩
输入一个字符串,输出简单的压缩 1)单字符串压缩 : 输入:ABBBCCD , 输出AB3C2D 2)多字符串压缩 输入:AABCABCD,输出A(ABC)2D 1)压缩单个字符 #include & ...
- 24 margin的用法
margin塌陷问题 当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑. 我们来看一个例子: html结构: <div ...
- 微信小程序内链微信公众号的方法
最近接了一个需求,要求在微信小程序内部添加关注微信公众号的方式并给出解决方案,经过几天的翻官网文档,查周边资料,问资深技术员,初步给出两个解决方案: 题外话: 搬砖容易,建设难,搬砖的小伙伴请注明文章 ...
- 简易数据分析 04 | Web Scraper 初尝--抓取豆瓣高分电影
这是简易数据分析系列的第 4 篇文章. 今天我们开始数据抓取的第一课,完成我们的第一个爬虫.因为是刚刚开始,操作我会讲的非常详细,可能会有些啰嗦,希望各位不要嫌弃啊:) 有人之前可能学过一些爬虫知识, ...
- 【记录】mybatis中获取常量类中数据
部分转载,已注明来源: 1.mybatis中获取常量类中数据 <update id="refuseDebt"> UPDATE dt_debt a SET ...
- 使用事件注册器进行swoole代码封装
在使用swoole的时候,事件回调很难维护与编写,写起来很乱.特别在封装一些代码的时候,使用这种注册,先注册用户自己定义的,然后注册些默认的事件函数. Server.php class Server ...