jenkins集成sonar

  用于我的sonar已经在一台机器上搭建好了,但是每次都要人工去执行sonar-run,很麻烦,所以就想着集成到jenkins上,在jenkins上点点按钮就可以看sonar结果,所以很抱歉,本博客不设置sonar的安装。用于jenkins和sonar不在同一台服务器上,所以,我还是采用了jenkins的master-slave的分布模式来集成sonar。我的sonar服务器是centos系统,ip是192.168.1.250,jenkins master 也是centos的系统,ip是192.168.1.246,关于如何搭建jenkins的master-slave模式,请参考我的另外一篇博客,https://www.cnblogs.com/zndxall/p/8297356.html,其中介绍了不同平台的slave机器的接入,当然,满足本博客的是centos系统的slave的接入。

  除了在jenkins master设置slave的接入,还有以下工作要做:

1.安装插件SonarQube Scanner for Jenkins

2.配置sonar服务: 

系统管理--》系统设置

server url:就是sonar web 界面的url

login和password就是上面url的登陆的用户名和密码,默认的用户名/密码是:admin/admin

3.设置sonar安装路径

系统管理--》Global Tool Configuration

备注:SONAR_RUNNER_HOME根据自己的真实情况填写,可以参考slave机器上的/etc/profile文件写的路径。

4.任务设置

(1)设置下发构建到slave机器 centos-250上:

(2)构建配置:

在构建阶段添加构建步骤,只需要填写Analysis properties即可。

填写内容如下(根据自己的实际情况):

sonar.projectKey=sonar_source
sonar.projectName=sonar_source
sonar.projectVersion=1.0.0
sonar.sources=sdk,sdk-browse,sdk-common,demo

其中,sonar.projectKey和sonar.projectName:填写的都是工程名,也可以理解为要执行sonar的文件夹的名字,

sonar.projectVersion:参数没细研究过,直接用我的1.0.0也没问题

sonar.sources:说明的是工程的哪些文件夹要参与到sonar检查中来,多个目录之间用逗号分开。

(多说一句:如果在工程中直接将上面的内容写入的文件sonar-project.properties中,直接bash调用进入到工程中,直接执行sonar-runner也是可以的,因为sonar-runner就是依据sonar-project.properties来执行的,和界面填写,效果一样)

(3)以上配置完成后,按照下图,先点击“开始构建”触发构建,构建结束后,点击左边的SonarQube,然后就会跳转到sonar界面,

跳转后效果如下:

url对应的就是前面设置的server url 

参考:https://blog.csdn.net/csolo/article/details/78159521

原文地址:https://www.cnblogs.com/zndxall/p/9336879.html