.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的代码详情

原文地址:https://www.cnblogs.com/tylerzhou/p/11229548.html

时间: 2024-08-30 00:46:31

.net持续集成sonarqube篇之sonarqube安装与基本配置的相关文章

.net持续集成sonarqube篇之 sonarqube触发webhook

系列目录 WebHook近些年来变得越来越流行,github,gitlab等代码托管平台都提供webhook功能.关于webhook这里不做详细介绍,大家可以参阅读相关互联网书籍或者材料来更深了解.可以把它简单理解为某一事件完成以后的一个回调. 在持续集成环境里,我们可以使用Sonarqube的webhook功能来实现持续发布和发布包归档功能.大致思路是当项目构建成功后我们可以通过webhook通知服务器构建任务已完成,接下来web 服务器可以根据webhook传递的参数决定要处理的包是哪个项目

gitlab+jenkins+maven+docker持续集成(十一)——sonarqube及sonarscanner代码审查

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质 量.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd.checkstyle. findbugs.Jenkins.通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程 进行代码质量管理. 同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar. 此外,Sonar 的插件还可以对

IOS使用jenkins进行持续集成 第二篇

上一篇,自己尝试进行持续集成,研究的不深入,这两天,为公司搭建持续集成环境,以及内部发布系统,了解的更多了,所以分享出来. 这篇主要介绍一些其他东西,不重复介绍上一篇的内容. 如果使用jenkins进行ios持续集成,需要xcode插件支持,所以先下载xcode插件,而且后期还要用到ftp服务,也安装ftp的插件. jenkins中可以自己创建特定的视图分组,all视图点击+号就能创建新视图,创建好后,在左侧的编辑视图选项,则会进入详情页,可以选择放入此视图的任务:相对于任务,我觉得最好依据代码

IOS使用jenkins进行持续集成 第一篇

本文主要讲述在开发过程中,提高工作效率而进行的IOS-Jenkins的持续集成. 背景 平时我们开发完成IOS项目,需要打包给测试人员进行测试.其中的过程需要重复进行:修改配置项--编译---连接设备--运行打包--debug进设备中--然后交给等待的测试人员.现有成熟的持续集成Jenkins解决方案,并且该方案也提供了Xcode插件的支持,可以讲上述过程封装成一键解决方案. 我实现的是jenkins执行IOS的job,build工程,签名打ipa包,上传到FTP服务器,放到tomcat下,提供

持续集成高级篇之基于win32-openssh搭建jenkins混合集群(一)

系列目录 前面的demo我们使用的都是只有一个windows主节点的的jenkins,实际生产环境中,一个节点往往是不能满足需求的.比如,.net项目要使用windows节点构建,java项目如果部署在linux服务器上往往也需要目标类型的linux节点做为构建节点,开发中使用的jdk版本不同也可能需要不同的构建主机.构建docker镜像往往也需要linux主机(强烈不建议使用docker for windows 进行linux环境的docker构建).本节我们讲解如何搭建一个主节点为windo

Java从入门到精通——数据库篇Mongo DB 安装启动及配置详解

一.概述     Mongo DB 下载下来以后我们应该如何去安装启动和配置才能使用Mongo DB,本篇博客就给大家讲述一下Mongo DB的安装启动及配置详解. 二.安装 1.下载Mongo DB     http://www.mongodb.org/downloads    点击上面链接下载Mongo DB 2.解压Mongo DB 3.配置环境变量 4.检查Mongo DB安装是否成功    Cmd mongo -version 三.启动及其配置详解 启动Mongo DB需要三个文件 M

CDH安装配置第二篇:CDH安装的前期配置

本篇介绍cdh安装之前需要的一些必要配置,当然这些配置也可以用shell脚本来配置.在安装之前请先配置好yum源,在文中用的统一都是阿里源. 系统:centos7 主机3台: master.com.cn 192.168.1.110 salver1.com.cn 192.168.1.111 salver2.com.cn 192.168.1.112 yum服务器:yum.com.cn 192.168.1.100.这里如果不知道怎么配置的朋友,可以参考第一篇:https://www.cnblogs.c

.net持续集成sonarqube篇之sonarqube基本操作(一)

系列目录 Sonarqube Web管理界面虽然设计的简洁大方,也非常直观,但是由于功能繁多,这对快速入手以及快速定位到想要的功能都是一个挑战,在以后的几个小节里我们简要介绍. OwerView(概览) 概览界面主要展示了项目lint的统计信息 可以看到这些栏目栏目大都是统计数字,并且带有链接,点击链接则可以看到详细信息.其实中有些栏目的统计数字旁边带有带圈的英文字母,这些字母中,从A到E质量依次下降,颜色逐渐由绿色变为红色.项目管理者可以根据这些评级和颜色大致了解某一主题的健康状况. 其中单元

持续集成高级篇之Jenkins Pipeline 集成sonarqube

系列目录 前面章节中我们讲到了Sonarqube的使用,其实Sonarqube获取msbuild结果主要是执行三个命令,开始标记,执行msbuild,结束标记,这些都是命令,是非常容易集成到我们ci流程中的,但是使用这种方式最为简单,但是Sonarqube插件与jenkins集成的更好,我们可以通过jenkins页面看到构建结果是否成功,以及可以通过链接轻松地跳到Sonarqube web管理界面.前面章节我们介绍了如何在自由式任务中使用sonarqube插件,这里我们讲下如何在pipeline