本篇文章给大家分享的是有关Jenkins使用sonarQube实现一个代码质量检查功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联服务项目包括遂宁网站建设、遂宁网站制作、遂宁网页制作以及遂宁网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,遂宁网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到遂宁省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!1.sonarQube的简介
SonarQube是一款自动化代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查。
其工作流程如下:
如图SonarQube由以下4个组件组成:
1.SonarQube Server:
WebServer:供开发人员,管理人员浏览高质量的快照并配置SonarQube实例Search Server:基于Elasticsearch的Search Server从UI进行后退搜索(历史)computeEngine:负责处理代码分析报告并将其保存在SonarQube数据库中
2.SonarQube Database:
SonarQube实例的配置(安全性、插件设置等)项目、视图等的质量快照。
3.SonarQube Plugins:服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件
4.SonarScanners:多种sonar扫描组件,在构建/持续集成服务器上运行以分析项目。
关于sonar的具体介绍可参考其官网。
2.SonarQube的安装
SonarQube提供了多种安装方式,本文将使用docker镜像的安装方式进行演示。
1.拉取sonarQube的docker容器
$> docker pull sonarqube:8.2-community
2.创建docker数据卷
#包含数据文件,例如嵌入式H2数据库和Elasticsearch索引
$> docker volume create --name sonarqube_data
#包含插件,例如语言分析器
$> docker volume create --name sonarqube_extensions
#包含有关访问,Web流程,CE流程和Elasticsearch的SonarQube日志
$> docker volume create --name sonarqube_logs
3.配置本地数据库(示例使用postgresql)
如果使用postgresql的默认schema "public",则无需这一步。如果想自定义schema,则执行以下命令
ALTER USER mySonarUser SET search_path to <自定义的schema名称>
4.启动sonarQube
$> docker run -d --name sonarqube \
-p 9000:9000 \
#以下为给sonarQube的数据库配置,推荐postgresql
-e SONAR_JDBC_URL=jdbc:postgresql://xxxx:5432/postgres \
-e SONAR_JDBC_USERNAME=... \
-e SONAR_JDBC_PASSWORD=... \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
本地浏览器访问localhost:9000即可访问。
3.sonarQube中创建项目步骤
1:新建项目
步骤2:填写项目信息
步骤3:创建令牌
步骤4:记录令牌
创建项目完成,并且记录下令牌,后续步骤会用到。
4.jenkins配置sonarQube插件1.安装sonarQube插件
2.添加sonarQube配置
在jenkins>Manage Jenkins>global configuration中配置sonar的信息,如下图:
name为自定义的名字,serverURL为sonarqube的访问地址
最后一项token需要添加。点击添加,如下图:
类型选择 Secret text,并将我们在第三步中得到的token填入secret栏,其余栏目自定义。添加完后,回到上一步Server authentication token选择刚刚添加的token。
5.项目中引入sonarQube
以下为maven单模块项目示例:
1.引入sonarqube插件:
sonar-demo org.sonarsource.scanner.maven sonar-maven-plugin 3.6.0.1398