
 啊我摔倒了..有没有人扶我起来学习....
👱个人主页: 《 C G o d 的个人主页》 \color{Darkorange}{《CGod的个人主页》} 《CGod的个人主页》交个朋友叭~
💒个人社区: 《编程成神技术交流社区》 \color{Darkorange}{《编程成神技术交流社区》} 《编程成神技术交流社区》加入我们,一起高效学习,收割好Offer叭~
🌱刷题链接: 《 L e e t C o d e 》 \color{Darkorange}{《LeetCode》} 《LeetCode》快速成长的渠道哦~
目录
- 前言
- 一、Sonar Qube介绍
- 二、Sonar Qube环境搭建
- 2.1 Sonar Qube安装
- 2.2 安装中文插件
 
- 三、Sonar Qube基本使用
- 3.1 Maven实现代码检测
- 3.2 Sonar-scanner实现代码检测
 
前言
Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题
一、Sonar Qube介绍
Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。
Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来
| Sonar Qube的UI界面 | 
|---|
| ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQmvlkYk-1667449847954)(Pictures/image-20211129190039986.png)]](https://img-blog.csdnimg.cn/2618d710b3b041fcb33991be46c8dd1e.png) | 
二、Sonar Qube环境搭建
2.1 Sonar Qube安装
Sonar Qube在7.9版本中已经放弃了对MySQL的支持,并且建议在商业环境中采用PostgreSQL,那么安装Sonar Qube时需要依赖PostgreSQL。
并且这里会安装Sonar Qube的长期支持版本8.9
-  拉取镜像 docker pull postgres docker pull sonarqube:8.9.3-community
-  编写docker-compoe.yml version: "3.1" services: db: image: postgres container_name: db ports: - 5432:5432 networks: - sonarnet environment: POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar sonarqube: image: sonarqube:8.9.3-community container_name: sonarqube depends_on: - db ports: - "9000:9000" networks: - sonarnet environment: SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: sonar networks: sonarnet: driver: bridge
-  启动容器 docker-compose up -d
-  需要设置sysctl.conf文件信息 设置vm.max_map_count ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O62yiGIl-1667449847955)(Pictures/image-20211207145215817.png)]](https://img-blog.csdnimg.cn/c91fc81a42de415babb4b164be85cee2.png) ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AChcgqsb-1667449847955)(Pictures/image-20211207145342350.png)]](https://img-blog.csdnimg.cn/c81bce6301674cddbd012ac77986b159.png) 并执行命令刷新 sysctl -p
-  重新启动需要一定时间启动,可以可以查看容器日志,看到如下内容代表启动成功 容器日志 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yDFiDid0-1667449847955)(Pictures/image-20211129191426344.png)]](https://img-blog.csdnimg.cn/567bdee76a63439095d53a8882cfd07c.png) 
-  访问Sonar Qube首页 登录 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJzCdvur-1667449847956)(Pictures/image-20211129191537050.png)]](https://img-blog.csdnimg.cn/d98784b732e0428db7f198cdab4ae5a2.png) 
-  还需要重新设置一次密码 重新设置密码 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAv0SWnf-1667449847956)(Pictures/image-20211129193824428.png)]](https://img-blog.csdnimg.cn/07a1d51b31334f3485601a7b62768fbe.png) 
-  Sonar Qube首页 Sonar Qube首页 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rb8Dwrj2-1667449847957)(Pictures/image-20211129194148239.png)]](https://img-blog.csdnimg.cn/b47823b65af248b1bf5cec2f89a6b78e.png) 
2.2 安装中文插件
| 安装中文插件 | 
|---|
| ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mu2LMlmG-1667449847957)(Pictures/image-20211129194621820.png)]](https://img-blog.csdnimg.cn/e681f7171dbb44d88c9ed3450d729433.png) | 
安装成功后需要重启,安装失败重新点击install重装即可。
安装成功后,会查看到重启按钮,点击即可
| 重启按钮 | 
|---|
| ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kEnhsfdh-1667449847957)(Pictures/image-20211129194748765.png)]](https://img-blog.csdnimg.cn/ba5d2992a92e4cdebef3f29396818606.png) | 
重启后查看效果
| 首页效果 | 
|---|
| ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N08K4aYm-1667449847958)(Pictures/image-20211129194931944.png)]](https://img-blog.csdnimg.cn/3fbedd9dd7984f7d9d6f398b0becca01.png) | 
三、Sonar Qube基本使用
Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果
3.1 Maven实现代码检测
-  修改Maven的settings.xml文件配置Sonar Qube信息 <profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.login>admin</sonar.login> <sonar.password>123456789</sonar.password> <sonar.host.url>http://192.168.11.11:9000</sonar.host.url> </properties> </profile>
-  在代码位置执行命令:mvn sonar:sonar 执行代码检测 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rBQw7Kmn-1667449847958)(Pictures/image-20211129195430146.png)]](https://img-blog.csdnimg.cn/593b23f50af7464db4bdcaa432dacb47.png) 
-  查看Sonar Qube界面检测结果 Sonar Qube检测结果 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CfWXwKsh-1667449847958)(Pictures/image-20211129195503762.png)]](https://img-blog.csdnimg.cn/b220cc47a4ab429c8afaed5ed97ef478.png) 
3.2 Sonar-scanner实现代码检测
-  下载Sonar-scanner:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/ 下载4.6.x版本即可,要求Linux版本 
-  解压并配置sonar服务端信息 -  由于是zip压缩包,需要安装unzip解压插件 yum -y install unzip
-  解压压缩包 unzip sonar-scanner-cli/sonar-scanner-cli-4.6.0.2311-linux.zip
-  配置sonarQube服务端地址,修改conf下的sonar-scanner.properties 配置服务端信息 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-05jJurEi-1667449847959)(Pictures/image-20211130140043382.png)]](https://img-blog.csdnimg.cn/67869daaccfc483eb355eae7e59c65f5.png) 
 
-  
-  执行命令检测代码 # 在项目所在目录执行以下命令 ~/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=demo -Dsonar.projectKey=java -Dsonar.java.binaries=target/Ps:主要查看我的sonar-scanner执行命令的位置 查看日志信息 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KlLRjHDK-1667449847959)(Pictures/image-20211130141303457.png)]](https://img-blog.csdnimg.cn/b4833f6e1e3341ce8d0b79f01bae0439.png) 
-  查看SonarQube界面检测结果 检测结果 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2b6KKjZX-1667449847959)(Pictures/image-20211130144608025.png)]](https://img-blog.csdnimg.cn/70f972d4183443a2b3e9d5e8626d8356.png) 




















