jenkins集成sonarqube

最近工作中已经很少会使用jenkins来构建编译任务了,因为已经将大部分项目迁移到gitlab上了,但是不可否认的是 jenkins依然是持续集成工具的最佳选择.

各种工具其实都各有优缺点,在选用时都需要考虑到学习成本以及使用场景。本文就介绍下jenkins的一种使用场景: 推送sonarqube报告

首先,我们需要知道sonarqube能分析项目代码,帮助发现项目中潜在的bug,承担的是一个质量管理的角色.其次,上传报告一般是需要借助于sonar-scanner插件来上传的,但是也有例外,例如java项目可以直接通过maven的soanr插件来上传代码.

使用sonarqube的好处就不说了,本文就讲讲从jenkins推送报告到soanrqube的几种方式


在之前的文章中说过:jenkins一般是作为master节点,往往担任的是分发者的角色,将一些构建任务分发到其他的slave节点中,这种方式符合现在的主流,即master-slave方式. 当然,我们也能在master上运行任务.

一、在jenkins master节点上运行构建任务

这种方式我们可以选择在jenkins上安装Sonarqube Scanner插件,也可以选择在安装jenkins的机器上装sonar-scanner插件,这两者效果一样,本质上都是通过sonar-scanner插件来上传报告.

如果是在jenkins上安装Sonarqube Scanner插件,还需要进行配置,比较麻烦,建议直接在机器上安装sonar-scanner插件,十分简单,具体用法可看下面的文档

二、在jenkins node节点上运行构建任务

这种方式是jenkins master节点将实际的任务分发给node节点,当然需要事先准备好node节点,然后再配置job的时候指定使用该node节点. 还需要在node节点对应的服务器上下载soanr-scanner插件,用法可看下面的文档

鉴于采用sonar-scanner来上传sonar报告是最普遍的做法,因此,下面我们介绍下具体的使用实例


上传sonar报告的例子

1.java项目上传sonar 报告其实有两种,一种如下:

mvn clean package sonar:sonar -Dsonar.host.url=xxxx

注意sonar:sonar是会下载一个sonar插件,然后通过该sonar插件去上传报告到sonarqube上.

另外一种是通过sonar-scanner插件推送

sonar-scanner -Dsonar.host.url=xxxx
-Dsonar.projectKey=Test
-Dsonar.projectName=Test
-Dsonar.projectVersion=1.0
-Dsonar.sources=src
-Dsonar.java.binaries=target/classes

看到这里,很容易发现sonar-scanner命令的用法和java一样.这是直接通过命令来运行的. 事实上,sonar-scanner在运行时会读取当前目录下的sonar-project.properties文件,所以也可以将这些参数放入该文件中,放入文件中时就不需要再加-D了

2.c++项目上传sonar报告

直接贴命令:

sonar-scanner
-Dsonar.projectKey=CProject
-Dsonar.projectName=CProject
-Dsonar.projectVersion=1.0
-Dsonar.sources=src
-Dsonar.language=c++

 

这里就只介绍java项目和c++项目了,具体的用法,大家可以参考官方用法,也比较全面,需要注意的是:使用sonar-scanner时要注意使用的是sonar-scanner自带的java版本还是系统的java版本,需要将sonarqube的网站证书加入到java的cacerts文件中


本文粗略的介绍了如何使用sonar-scanner上传报告,以及jenkins和sonarqube集成的基本原理。事实上,在真正开始集成它们时,会遇到各种各样的问题,对于新手来说尤其麻烦.本文也只是提出了一个问题以及对应的解决方案.

介于文章篇幅,因此大家如果在集成过程中遇到问题的话,可一起探讨下解决办法.


微信公众号: DevOps入门指南

大家关注下微信公众号!另外,新建了一个微信群,主要是devops/ci/cd相关的话题讨论以及问题解决方案。大家感兴趣的话可以加微信:crazy_boy-smile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值