目录

  1. Sonar的安装和配置
  2. Jenkins与Sonar集成 2.1 Jenkins配置 2.2 通过Jenkins提交代码到Sonar
  3. 环境变量设置

1. Sonar的安装和配置

这两个工具集成,着实踩了不少坑。关于它们的介绍,我就不多阐述了。Jenkins是最近安装的,没有保留操作步骤,我是安装的windows版本,官网上下载后,下一步一路到底就行了。两年前就有安装过Sonar,由于当时服务器配置比较差,运行时总是出现服务停止运行的情况,后来不了了之。今年公司项目多起来了,对编码规范这一块也着手抓起来了。于是又想到了Sonar,这里详细介绍下Sonar的安装和配置。

测试服务器配置:

Jenkins 轮询scm 时间 jenkins配置sonar_数据库

数据库:

Jenkins 轮询scm 时间 jenkins配置sonar_Jenkins 轮询scm 时间_02

Java运行时是主要的先决条件。尽量安装最新版本的java。

  • 数据库
    数据库建好后,需要简单配置一下。主要是排序规则。它需要是区分大小写(CS)和区分重音(AS)的。
  • Jenkins 轮询scm 时间 jenkins配置sonar_bc_03

  • 数据库建好后,需要确保为我们的SQL实例启用了TCP / IP协议。同时,确保SQL Server Browser服务正在运行。通常情况下,它默认是禁用的。但是要使JDBC驱动程序正常工作,需要启用并运行它。打开服务管理控制台并找到名为SQL Server Browser的服务。如果禁用,启用它并启动服务。
  • Jenkins 轮询scm 时间 jenkins配置sonar_bc_04


  • Jenkins 轮询scm 时间 jenkins配置sonar_bc_05

  • Sonar
  • 配置
    官网下载最新版的Sonar。解压压缩包到任意目录下,我是用的社区版,版本号为7.3。
    另外,还需下载Microsoft JDBC驱动程序。下载完毕后,解压并提取里面的文件到任意临时目录下。进入该临时目录,找到sqljdbc_4.2\enu\auth\x64 文件夹并复制该路径中唯一的文件,sqljdbc_auth.dll并将其粘贴到System32目录中,通常情况下C:\Windows\System32。
    现在,开始修改Sonar中的配置文件。
    找到Sonar目录下conf文件夹,并对sonar.properties进行编辑。
    大概在文档的16行,删除该行前面的“#”,设置sonar.jdbc.username为链接数据库的账号;
    大概在文档的17行,删除该行前面的“#”,设置sonar.jdbc.password为链接数据库的密码;
    大概在文档的56行,删除该行前面的“#”,设置sonar.jdbc.url=jdbc:sqlserver://数据库服务地址;databaseName=Sonar数据库名称。
    我这里使用的是SQL 身份认证模式。
    配置完成后,移步至Sonar目录下bin\windows-x86-64,以管理员的身份运行StartSonar.bat
    顺利的话,将看到如下信息:
  • Jenkins 轮询scm 时间 jenkins配置sonar_数据库_06

  • 打开浏览器,运行“http://localhost:9000”,将会进入Soar的首页,默认账号和密码都是admin。
    我们关闭StartSonar.bat,回到Sonar目录下bin\windows-x86-64,以管理员的身份运行InstallNTService.bat。执行完毕后,Sonar服务会添加到Windows服务中。下次我们就不需要手动启动Sonar服务了。
  • Jenkins 轮询scm 时间 jenkins配置sonar_Jenkins 轮询scm 时间_07

  • 如果想换一个端口,大概在文档的113行,删除该行前面的“#”,sonar.web.port=更换后的端口。
  • 中文插件
    Sonar默认语言为英语,我们去安装支持中文的插件。
  • Jenkins 轮询scm 时间 jenkins配置sonar_Jenkins 轮询scm 时间_08

  • 安装后会提示重启。重启后在登入,系统大部分功能会变成中文语言。
  • 提交代码
    提交代码的方式有两种,这里分别介绍一下。
    方式一:
    下载msbuild的plugins(这里下载)。下载后解压到任意目录。
  • Jenkins 轮询scm 时间 jenkins配置sonar_bc_09

  • 在目录中,找到SonarQube.Analysis.xml,并对其进行相关修改。
  • Jenkins 轮询scm 时间 jenkins配置sonar_Jenkins_10

  • 接着,把该目录加入系统环境变量
    打开cmd并进入到代码所在目录(进入代码所在目录,按住Shift后点击鼠标右键,弹出的菜单中选择“在此处打开窗口命令”),执行如下指令:
MSBuild.SonarQube.Runner.exe begin /k:"ProjectKey" /n:"ProjectName" /v:"1.3.0"

k:唯一的键
n:项目名称
v:项目版本号

Jenkins 轮询scm 时间 jenkins配置sonar_Jenkins_11

接着执行如下命令:

MSBuild.exe /t:Rebuild

会对代码进行编译,编译没问题的话,方可进行下一步。

最后执行:

MSBuild.SonarQube.Runner.exe end

代码会提交到Sonar。

Jenkins 轮询scm 时间 jenkins配置sonar_Jenkins_12

方式二:
下载sonar-scanner(Jenkins也会使用到它),解压到任意目录,并将该目录加入系统环境变量
打开cmd,执行如下命令:

sonar-scanner -version

若出现如下提示,这说明配置成功。

Jenkins 轮询scm 时间 jenkins配置sonar_Jenkins 轮询scm 时间_13

移步至项目文件夹根目录,手动创建“sonar-project.properties”文件,并输入如下信息:

//项目的key
    sonar.projectKey=projectKey
    //项目的名字
    sonar.projectName=projectName
    //项目的版本
    sonar.projectVersion=1.0.0
    //需要分析的源码的目录,多个目录用英文逗号隔开
    sonar.sources=D:/Program Files (x86)/Jenkins/workspace/TEST

设置完后,打开cmd并进入到代码所在目录(进入代码所在目录,按住Shift后点击鼠标右键,弹出的菜单中选择“在此处打开窗口命令”),执行如下指令:

sonar-scanner

分析完毕后,会自动将代码提交至Sonar。

至此,关于Sonar的相关操作已告一段落。