安装方式选择:
- 在线安装:直接在Jenkins》系统管理》插件管理》可选插件,搜索Sonar
- 离线安装:下载sonar插件,将插件解压放入~/.jenkins/plugins/下即可
在线安装要简单许多,由于我们是内网服务器,无外网访问权限,因此只能用离线安装,下面介绍离线安装过程
下载sonarqube scanner
请注意,后面还有个sonar-scanner,这个包40M左右,注意区分,这是用来执行分析的,而sonarqube scanner是用来和jenkins进行集成的插件
要通过jenkins使用sonarqube来进行代码的审查,需要在jenkins中安装sonarqube scanner插件并配置好以后才可以在构建的时候触发sonarqube扫描代码
下载
:
安装
将下载的sonarqube加压后里面有个sonar
目录和sonar.jpi
一起放到目录/opt/xxxx/product/bdc/.jenkins/plugins
下
[bdc@T5073 plugins]$ pwd
/opt/xxxx/product/bdc/.jenkins/plugins
[bdc@T5073 plugins]$ ll -h|grep 'sonar'
drwxrwxr-x 6 bdc bdc 4.0K 10-23 13:52 sonar
-rw-rw-r-- 1 bdc bdc 7.0M 10-23 13:00 sonar.jpi
[bdc@T5073 plugins]$
重启jenkins
重启jenkins后进入系统管理页面,如果一切正常,请进行下一步,如果有提示sonarqube scanner插件因为某某某依赖没安装成功,多半是因为某个依赖不存在或者版本太低了,安装对应版本即可,在已安装插件出现下图所示即为安装成功
配置sonar服务器
1. 进入系统管理》找到SonarQube servers,点击Add SonarQube
2.填写下面信息
Name:随意
Server URL:sonar部署的地址,http://xxx:9000/sonar
Server authentication token:sonar最初登录提示创建的令牌,可以在sonar点击头像》安全,生成新的令牌
3.填写完成后如下图,token一栏和网上很多文章不一致,我用的jenkins是2.1+版本的,因此需要点击添加,这个在Jenkins是全局凭证,其他地方可以使用
4.创建凭证,点击添加按钮,如下图,类型要选择Secret text,在Secret栏输入sonar令牌即可,然后回去就可以选择了
配置项目,添加sonar canner扫描
1.在jenkins》项目配置》构建环境,选择刚刚创建的凭证
2.点击项目》配置》构建》增加构建步骤,选择Execute SonarQube Scanner
3.这里可能会提示Jenkins needs to know where your SonarQube Scanner is installed.
,如果有,进入系统管理》全局工具配置》找到Sonarqube Scanner,然后按照下图配置,Name随意,SONAR_RUNNER_HOME是sonar-scanner
的安装目录(如何安装请继续往下看)
4.配置sonar扫描参数
注意:下图中sonar.host.url、sonar.login、sonar.password三项可以不配置(如果前面选择了凭证)
参数说明
>sonar.host.url
sonar访问地址
>sonar.login
sonar登录账号(也可以通过token方式)
>sonar.password
sonar登录密码
>sonar.projectKey
sonar网站上显示的关键字
>sonar.projectName
sonar网站上显示的工程名称
>sonar.projectVersion
sonar网站上显示的项目版本号
>sonar.language
项目使用编程语言
>sonar.java.binaries
存放编译class文件路径
>sonar.sources
扫描代码存放路径,相对于当前配置工程的路径
5.立即构建,如果sonar扫描出错,有可能是默认的jdk版本与sonar canner不匹配,我这里做的比较暴力,直接修改sonar-scanner启动文件的命令
修改文件/opt/xxx/product/bdc/sonar/sonar-scanner-4.2.0.1873-linux/bin/sonar-scanner
最末尾
6.执行扫描
通过下面命令行可以执行扫描
/opt/xxx/product/bdc/sonar/sonar-scanner-4.2.0.1873-linux/bin/sonar-scanner scan \
-Dsonar.sources=/opt/aspire/product/bdc/.jenkins/workspace/BDC/ \
-Dsonar.language=java \
-Dsonar.projectVersion=1.4.9.0 \
-Dsonar.java.binaries=/opt/aspire/product/bdc/.jenkins/workspace/BDC/ \
-Dsonar.projectKey=bdc \
-Dsonar.host.url=http://10.12.3.123:9000/sonar \
-Dsonar.login=admin \
-Dsonar.password=admin \
-Dsonar.projectName=bdc \
-Dsonar.projectBaseDir=/opt/aspire/product/bdc/.jenkins/workspace/BDC \
如果扫描出现了svn授权问题,可以在sonar》配置》SCM》关闭SCM,再重新扫描(也可以配置账号密码,jenkins前面已经从svn拉取了代码,因此这里没有必要开启svn),扫描成功
7.通过第6步服务器内命令扫描成功后,可以在jenkins点击立即构建,要进行第6步是为了跳过svn更新项目构建过程
8.访问sonar
上一篇《Jenkins集成Sonar(2/3)登录并添加token进行扫描+汉化》