jenkins集成sonarqube

发布时间:2025-07-07 02:12

使用Jenkins进行持续集成 #生活技巧# #工作学习技巧# #编程学习资源#

最近工作中已经很少会使用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

网址:jenkins集成sonarqube https://www.yuejiaxmz.com/news/view/1136338

相关内容

windows下sonarqube和sonar
利用开源软件搭建JAVA工程CI&CD自动化工具链(K8S)
搭建持续集成接口测试平台(Jenkins+Ant+Jmeter)
持续集成、自动化构建工具Jenkins使用介绍
自动化工具篇:Top 10 自动化工具和软件
Jenkins配置自动化工具项目推荐
推荐2款实用的持续集成与部署(CI&CD)自动化工具
Flask像Jenkins一样构建自动化测试任务
Jenkins自动化部署实践
Flask开发类似jenkins构建自动化测试任务工具

随便看看