SonarQube代码质量扫描持续集成

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本篇内容记录了sonarqube的下载、配置、启动等操作步骤。

1、安装JDK和配置JAVA_HOME和CLASSPATH



2、安装mysql数据库



3、创建数据库和用户


mysql -u root -p
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;


4、下载sonarqube


wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.4.zip


unzip sonarqube-5.4.zip
vi /etc/profile
SONAR_HOME=/usr/jenkins/sonarqube-5.4
export SONAR_HOME
    source /etc/profile


5、配置sonarqube


在sonarqube解压包下编辑conf/sonar.properties文件,该文件中所有注释掉的数据库连接模板都是支持的,只需要去掉注释更改为自己的数据库连接即可,同时将默认的自带数据库连接注释去掉。


一般需要配置以下属性(这里使用MySQL数据库,数据库的引擎必须是innodb):


vi /usr/jenkins/sonarqube-5.4/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.maxActive=60
sonar.jdbc.maxIdle=5
sonar.jdbc.minIdle=2
sonar.jdbc.maxWait=5000
sonar.jdbc.minEvictableIdleTimeMillis=600000
sonar.jdbc.timeBetweenEvictionRunsMillis=30000
sonar.web.host=0.0.0.0
#修改snoar端口,默认为9000
sonar.web.port=9090


6、启动sonarqube服务


/usr/jenkins/sonarqube-5.4/bin/linux-x86-64/sonar.sh console 启动服务
    /usr/jenkins/sonarqube-5.4/bin/linux-x86-64/sonar.sh start 启动服务
/usr/jenkins/sonarqube-5.4/bin/linux-x86-64/sonar.sh stop 停止服务
/usr/jenkins/sonarqube-5.4/bin/linux-x86-64/sonar.sh restart重启服务
启动成功后在浏览器地址栏输入http://localhost:9090即可访问snoarQube。
缺省用户名和密码是admin/admin


7、汉化sonarqube


https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/


安装目录:$SONAR_HOME/extensions/plugins


wget https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.9/sonar-l10n-zh-plugin-1.9.jar


8、在jenkins平台上安装插件SonarQube Scanner for Jenkins



9、在jenkins配置SonarQube



微信图片_20220430171915.png


如果设置为5.3 or higher选择,就必须使用sonarQube account token进行连接,这个更安全。


Server authentication token项需要在sonar server端生成 ;访问sonar server端

菜单==》配置==》权限==》用户==》TOKENS==》Generate 生成token,将生成token添加到此处,完成添加。

微信图片_20220430171919.png


10、下载安装和配置sonar scanner


https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/


wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-2.8.zip


vi /home/jenkins/.bash_profile
SONAR_RUNNER_HOME=/usr/local/jenkins/sonar-scanner-2.8/
export PATH=$SONAR_RUNNER_HOME/bin:$PATH
source /home/jenkins/.bash_profile


测试是否安装sonner scanner成功


输入命令:sonar-runner -version出现以下信息,则表示环境变量设置成功


微信图片_20220430171922.png

 

vi conf/sonar-scanner.properties
#Configure here general information about the environment, such as SonarQube DB details for example
#No information about specific project should appear here
#----- Default SonarQube server
sonar.host.url=http://localhost:9090
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
#----- Global database settings (not used for SonarQube 5.2+)
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
#----- MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8


11、在jenkins中配置sonar scanner


系统管理–》Global Tool Configuration

微信图片_20220430171925.png


12、项目中添加sonar scanner分析



13、要让jenkins编译完成,自动将代码传给sonarqube进行分析,则要配置jenkins中的目标项目。


选择自己的project==》配置==》add pre-build step


微信图片_20220430171928.png


14、遇到的问题


在项目源码根目录执行命令时,可能会有svn错误,因为当sonar扫描的时候,会因为无法访问.svn而扫描失败,在sonar平台中用admin登录后,点击‘配置’-‘SCM’,如下图:


微信图片_20220430171933.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
Devops 开发工具 数据安全/隐私保护
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
244 0
|
jenkins Java 关系型数据库
jenkins持续集成从0入门到实战【八】集成sonarqube代码检测
SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检 测。
392 1
jenkins持续集成从0入门到实战【八】集成sonarqube代码检测
|
SQL Java 关系型数据库
软件测试|SonarQube 安装、配置及 JaCoCo、Maven 集成
软件测试|SonarQube 安装、配置及 JaCoCo、Maven 集成
软件测试|SonarQube 安装、配置及 JaCoCo、Maven 集成
|
jenkins Shell 持续交付
jenkins流水线+SonarQube集成检查代码
jenkins流水线+SonarQube集成检查代码
jenkins流水线+SonarQube集成检查代码
|
SQL Java 关系型数据库
代码质量管理平台实战| SonarQube 安装、配置及 JaCoCo、Maven 集成
![](https://ceshiren.com/uploads/default/original/3X/0/6/06250bd7e85b93784a37a6c492aa05bee2d77ef3.jpeg) SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。同时 SonarQube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 SonarQube。
|
jenkins Devops 测试技术
Jenkins + Gitlab + Sonarqube 集成初体验
Jenkins + Gitlab + Sonarqube 集成初体验
338 0
Jenkins + Gitlab + Sonarqube 集成初体验
|
安全 机器人 jenkins
SonarQube快速集成钉钉群机器人
1. 部署插件 2. 添加钉钉群机器人 3. 设置SonarQube 4. 设置CI/CD 5. 大功告成
|
jenkins 持续交付 开发工具
SonarQube集成Jenkins自动化检查代码
SonarQube集成Jenkins自动化检查代码
SonarQube集成Jenkins自动化检查代码
|
SQL 算法 Java
代码质量管理平台实战| SonarQube 安装、配置及 JaCoCo、Maven 集成
代码质量管理平台实战| SonarQube 安装、配置及 JaCoCo、Maven 集成
|
4月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
287 6

热门文章

最新文章