Jenkins集成Sonar Qube

前文目录

Jenkins安装部署使用_南宫乘风的博客-CSDN博客

Jenkins入门配置_南宫乘风的博客-CSDN博客

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-compose.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

 并执行命令刷新

sysctl -p

重新启动需要一定时间启动,可以可以查看容器日志,看到如下内容代表启动成功

容器日志

 访问Sonar Qube首页

 

还需要重新设置一次密码

 Sonar Qube首页

 

安装中文插件

 

安装成功后需要重启,安装失败重新点击install重装即可。

安装成功后,会查看到重启按钮,点击即可

 重启后查看效果

 

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>admin123456</sonar.password>
        <sonar.host.url>http://172.17.1.22:9000</sonar.host.url>
    </properties>
</profile>

在代码位置执行命令:mvn sonar:sonar

 查看Sonar Qube界面检测结果

 

Sonar-scanner实现代码检测

yum -y install unzip

解压压缩包

unzip sonar-scanner-cli/sonar-scanner-cli-4.6.0.2311-linux.zip

配置sonarQube服务端地址,修改conf下的sonar-scanner.properties

 

执行命令检测代码

# 在项目所在目录执行以下命令
~/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=demo -Dsonar.projectKey=java -Dsonar.java.binaries=target/

查看日志信息

 查看SonarQube界面检测结果

 

Jenkins集成Sonar Qube

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

Jenkins安装插件

 

Jenkins配置Sonar Qube

开启Sonar Qube权限验证

 获取Sonar Qube的令牌

 配置Jenkins的Sonar Qube信息

 

 

配置Sonar-scanner

  • 将Sonar-scaner添加到Jenkins数据卷中并配置全局配置

 

配置任务的Sonar-scanner  

~/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=demo -Dsonar.projectKey=java -Dsonar.java.binaries=target/


#主要下面这个
sonar.projectname=${JOB_NAME}
sonar.projectKey=${JOB_NAME}
sources=./
sonar.java.binaries=target/

构建任务

 

已经上传镜像包

 

 

注意:我这里代码编译这一块,缺少那个 切换分支编译,如果有需要,需要自己配置 

 

posted @ 2022-05-21 18:49  南宫乘风  阅读(128)  评论(0编辑  收藏  举报