目录
- Sonar的安装和配置
- Jenkins与Sonar集成 2.1 Jenkins配置 2.2 通过Jenkins提交代码到Sonar
- 环境变量设置
1. Sonar的安装和配置
这两个工具集成,着实踩了不少坑。关于它们的介绍,我就不多阐述了。Jenkins是最近安装的,没有保留操作步骤,我是安装的windows版本,官网上下载后,下一步一路到底就行了。两年前就有安装过Sonar,由于当时服务器配置比较差,运行时总是出现服务停止运行的情况,后来不了了之。今年公司项目多起来了,对编码规范这一块也着手抓起来了。于是又想到了Sonar,这里详细介绍下Sonar的安装和配置。
测试服务器配置:
数据库:
Java运行时是主要的先决条件。尽量安装最新版本的java。
- 数据库
数据库建好后,需要简单配置一下。主要是排序规则。它需要是区分大小写(CS)和区分重音(AS)的。 - 数据库建好后,需要确保为我们的SQL实例启用了TCP / IP协议。同时,确保SQL Server Browser服务正在运行。通常情况下,它默认是禁用的。但是要使JDBC驱动程序正常工作,需要启用并运行它。打开服务管理控制台并找到名为SQL Server Browser的服务。如果禁用,启用它并启动服务。
- 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
顺利的话,将看到如下信息: - 打开浏览器,运行“http://localhost:9000”,将会进入Soar的首页,默认账号和密码都是admin。
我们关闭StartSonar.bat,回到Sonar目录下bin\windows-x86-64,以管理员的身份运行InstallNTService.bat。执行完毕后,Sonar服务会添加到Windows服务中。下次我们就不需要手动启动Sonar服务了。 - 如果想换一个端口,大概在文档的113行,删除该行前面的“#”,sonar.web.port=更换后的端口。
- 中文插件
Sonar默认语言为英语,我们去安装支持中文的插件。 - 安装后会提示重启。重启后在登入,系统大部分功能会变成中文语言。
- 提交代码
提交代码的方式有两种,这里分别介绍一下。
方式一:
下载msbuild的plugins(这里下载)。下载后解压到任意目录。 - 在目录中,找到SonarQube.Analysis.xml,并对其进行相关修改。
- 接着,把该目录加入系统环境变量。
打开cmd并进入到代码所在目录(进入代码所在目录,按住Shift后点击鼠标右键,弹出的菜单中选择“在此处打开窗口命令”),执行如下指令:
MSBuild.SonarQube.Runner.exe begin /k:"ProjectKey" /n:"ProjectName" /v:"1.3.0"
k:唯一的键
n:项目名称
v:项目版本号
接着执行如下命令:
MSBuild.exe /t:Rebuild
会对代码进行编译,编译没问题的话,方可进行下一步。
最后执行:
MSBuild.SonarQube.Runner.exe end
代码会提交到Sonar。
方式二:
下载sonar-scanner(Jenkins也会使用到它),解压到任意目录,并将该目录加入系统环境变量。
打开cmd,执行如下命令:
sonar-scanner -version
若出现如下提示,这说明配置成功。
移步至项目文件夹根目录,手动创建“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的相关操作已告一段落。