SonarQube环境搭建

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: SonarQube是一款开源的代码质量检查工具,主要用于源代码的质量检查,是devops流水线中很常用的一个工具,以插件化的形式,支持多种编程/脚本语言的代码分析,同时也提供了对常用IDE工具的支持。

SonarQube简介



SonarQube是一款开源的代码质量检查工具,主要用于源代码的质量检查,是devops流水线中很常用的一个工具,以插件化的形式,支持多种编程/脚本语言的代码分析,同时也提供了对常用IDE工具的支持。



Sonar环境搭建


Linux下环境搭建



安装包下载地址:https://www.sonarqube.org/downloads/工具分为社区免费版和开发版,官网下载可能比较慢,我已经下载好的版本存放在网盘中,有需要的可以从百度网盘下载即可:

链接:https://pan.baidu.com/s/1vKUlViVPzHCW8Q_14yE4PA

提取码:1234

SonarQube的安装包下载下来是一个zip压缩包,windows和linux下的安装包都是同一个,压缩包中会有针对不同系统的启动脚本:


微信图片_20220113190902.png


linux环境搭建:(需提前安装好jdk )

# 先创建一个sonar用户,用来启动sonar,具体可见注意事项第3点 
groupadd sonar
useradd sonar -g sonar -p sonar
# 使用unzip命令解压压缩包使用unzip命令解压压缩包
unzip sonarqube-8.4.2.36762.zip -d /home/sonar/devopstools
# 把sonar所需用到的目录都授权给sonar
chown -R sonar:sonar /home/sonar/devopstools/sonarqube-8.4.2.36762
chown -R sonar:sonar jdkpath
# 执行bin目录下的启动脚本
cd /home/sonar/devopstools/sonarqube-8.4.2.36762/bin/linux-x86-64
sh  sonar.sh start

注意事项;

1、sonarqube是需要依赖于jdk的,目前我所使用的sonarqube-8.4的版本,需要依赖于java11的版本,否则在启动的时候会报错 :


微信图片_20220113190907.png


2、sonarqube安装后,数据默认是存储在H2数据库引擎中的,可以在配置文件中修改数据存储的相关信息,配置文件存放于conf/sonar.properties文件中,目前支持H2(默认使用这个,但是官方推荐仅用于测试 ,商业环境中不推荐使用)、Oracle、PostgreSQL和SQLServer。

在以前的版本中,会看到支持mysql,网上有很多教程都写的是配置mysql的数据源 ,从SonarQube v7.9版本开始,将不再支持mysql,具体可参考下面的官方申明:

https://community.sonarsource.com/t/end-of-life-of-mysql-support/8667


微信图片_20220113190910.png


3、sonarqube启动的时候,会默认启动elasticsearch,elasticsearch现在默认不能以root用户启动 ,因为不能用root身份去启动sonar,否则执行sh sonar.sh start命令后,在logs文件中会出现如下的错误信息:


微信图片_20220113190913.png


sonar.log:


微信图片_20220113190916.png


es.log:

微信图片_20220113190918.png


Linux下通过Docker搭建SonarQube环境

# 下载sonarqube的docker镜像:
docker pull sonarqube
docker run -itd --name sonarqube -p 9000:9000 sonarqube

执行以上命令后,即可成功安装sonarqube,然后在浏览器中输入ip+端口9000访问即可。安装后,默认的登录用户名和密码是admin /  admin 。登录后初始化页面如下:


    微信图片_20220113190920.png



直接下载安装包解压后, 进入bin目录下的windows-x86-64文件夹中,然后执行bat脚本启动就行。(需提前安装好jdk并配置环境变量,新版本需依赖jdk11)


    微信图片_20220113190922.png


Sonarqube安装目录介绍



sonar安装目录常用的几个目录介绍:bin:下面存放了windows、linux和mac电脑的启动脚本conf:里面存放的是配置文件,其中sonar.properties里面可以更改sonar的数据源配置,端口等重要信息,wrapper.conf里面可以指定java的路径和一些其他的参数extensions:这个里面常关注的是plugins文件夹里面的内容,可以从官网下载其他插件放进去,扩展sonar的功能



SonarQube基本操作



1、生成token


    微信图片_20220113190925.png


2、找一个java的maven工程,在pom所在目录直接执行下面的命令扫描:

mvn sonar:sonar \
 -Dsonar.projectKey=demo \
 -Dsonar.host.url=http://106.53.29.33:9000 \
 -Dsonar.login=27b9c784671905425be75c580f5ed818c9533bc5

不同的语言,使用方法不一样,可以通过下图去筛选不通的语言,得到扫描的命令:


微信图片_20220113190927.png


3、查看扫描结果可以看到扫描出来的bug以及各种语言的代码行数,圈复杂度,代码重复率等指标的数据。


微信图片_20220113190930.png


总结


1、以上已为大家介绍了SonarQube环境搭建,要注意 ,新的版本需要依赖jdk11,以后的版本可能依赖的会更高 ,遇到启动报错,要学会查看日志进行分析,linux下安装的时候,不能用root用户去安装,不然会报elasticsearch启动错误。2、SonarQube主要用来展示各个项目的扫描结果和数据,目前搭建的是sonar的服务端, 如果是扫描其他语言,可能需要下载安装sonar-scanner的插件,可以结合jenkins实现持续集成,能够在开发提交代码后自动触发扫描。3、更多Sonar的用法请持续关注,后面有时间再分享其他用法,随着版本的升级,很多的用法也需要及时去学习和更新 ,最好的办法就是参考官网的文档学习,可以少踩很多坑。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
安全 关系型数据库 Java
SonarQube实战:部署(一)
基于Docker部署SonarQube及中文汉化。
394 0
|
SQL 安全 IDE
SonarQube使用介绍
SonarQube使用介绍
2360 0
SonarQube使用介绍
|
3月前
|
Java 关系型数据库 MySQL
SonarQube——如何搭建SonarQube完整版
SonarQube——如何搭建SonarQube完整版
42 0
SonarQube——如何搭建SonarQube完整版
|
3月前
|
jenkins Java 关系型数据库
jenkins学习笔记之十二:sonarqube9.9、SonarScanner4.8部署
jenkins学习笔记之十二:sonarqube9.9、SonarScanner4.8部署
|
Java
SonarQube使用教程
SonarQube使用教程
864 0
|
jenkins Java Shell
【2023】Jenkins入门与安装
【2023】Jenkins入门与安装
631 3
|
jenkins 持续交付 数据安全/隐私保护
01-Jenkins-环境搭建
01-Jenkins-环境搭建
【Sonarqube】初体验
【Sonarqube】初体验
120 0
|
存储 Java 关系型数据库
Sonar环境搭建
Sonar环境搭建
310 0
Sonar环境搭建
|
jenkins Devops 测试技术
Jenkins + Gitlab + Sonarqube 集成初体验
Jenkins + Gitlab + Sonarqube 集成初体验
338 0
Jenkins + Gitlab + Sonarqube 集成初体验