欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > Sonar Qube介绍和安装(三)

Sonar Qube介绍和安装(三)

2025/3/12 10:02:34 来源:https://blog.csdn.net/qq_42551543/article/details/142637317  浏览:    关键词:Sonar Qube介绍和安装(三)

Sonar Qube介绍

Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。
Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来

Sonar Qube环境搭建

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: postgrescontainer_name: dbports:- 5432:5432networks:- sonarnetenvironment:POSTGRES_USER: sonarPOSTGRES_PASSWORD: sonarsonarqube:image: sonarqube:8.9.3-communitycontainer_name: sonarqubedepends_on:- dbports:- "9000:9000"networks:- sonarnetenvironment:SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonarSONAR_JDBC_USERNAME: sonarSONAR_JDBC_PASSWORD: sonar
networks:sonarnet:driver: bridge
  • 启动容器
docker-compose up -d

在这里插入图片描述

  • 浏览器访问9000端口,发现容器启动失败,查看docker日志
docker  logs -f sonarqube

在这里插入图片描述

  • 设置sysctl.conf文件信息
vi /etc/sysctl.conf

设置完成后执行: sysctl -p

sysctl -p

在这里插入图片描述
在这里插入图片描述

  • 重启容器: docker-compose up -d,访问9000端口登录SonarQube
    SonarQube 默认密码和账号均为: admin
    在这里插入图片描述

安装中文插件

Sonar Qube的基本使用

Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果

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.43.141:9000</sonar.host.url></properties>
</profile>

在这里插入图片描述

  • 在代码位置执行命令:mvn sonar:sonar
    在这里插入图片描述
    这里执行可能会报错:
java.lang.TypeNotPresentException: Type org.sonarsource.scanner.maven.SonarQubeMojo not present
Caused by: java.lang.UnsupportedClassVersionError: org/sonarsource/scanner/maven/SonarQubeMojo : Unsupported major.minor version 52.0

只需要在pom.xml文件加上

 <plugin><groupId>org.codehaus.mojo</groupId><artifactId>sonar-maven-plugin</artifactId><version>3.7.0.1746</version></plugin>

在这里插入图片描述

  • 查看Sonar Qube界面检测结果
    在这里插入图片描述

Sonar-scanner实现代码检测

  • 下载Sonar-scanner:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/
    下载4.6.x版本即可,要求Linux版本
  • 解压并配置sonar服务端信息
    1. 由于是zip压缩包,需要安装unzip解压插件

      yum -y install unzip
      
    2. 解压压缩包

      unzip sonar-scanner-cli-4.6.0.2311-linux.zip
      
    3. 将 sonar-scanner 移动到 Jenkins 容器数据卷中

      cd /usr/local/docker/jenkins_docker/data
      mv /sonar-scanner ./
      
    4. 配置sonarQube服务端地址,修改conf下的sonar-scanner.properties
      在这里插入图片描述
      在这里插入图片描述

    5. 在项目所在目录执行以下命令
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

      Ps:主要查看我的sonar-scanner执行命令的位置

      /usr/local/docker/jenkins_docker/data/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=linux-test -Dsonar.projectKey=linux-test -Dsonar.java.binaries=target/ -Dsonar.login=718e3d1d21ae6a55ddea5e0979d5eb762d9d51fc
      
    6. 查看结果
      在这里插入图片描述

Jenkins集成Sonar Qube

Jenkins继承Sonar Qube实现代码扫描需要先下载整合插件

Jenkins安装插件

  • 安装SonarQube Scanner插件
    在这里插入图片描述
  • Jenkins配置Sonar Qube
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 配置Sonar-scanner
    将Sonar-scaner添加到Jenkins数据卷中并配置全局配置
    在这里插入图片描述
    配置任务的Sonar-scanner
    在这里插入图片描述
    在这里插入图片描述

构建任务

  • 构建任务报错
    在这里插入图片描述
  • 删除工作目录下 mytest 项目,再次重新构建
    由于之前测试生成了 .scannerwork 文件,也可以只删除 .scannerwork 文件
    在这里插入图片描述
  • 成功构建

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词