代码质量平台Sonarqube
2023-8-15 05:47:0 Author: xz.aliyun.com(查看原文) 阅读量:40 收藏

安装

docker-compose

使用docker搭建

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 启动会有报错

需要设置sysctl.conf文件信息
设置vm.max_map_count

并执行命令刷新

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

初始化

访问Sonar Qube首页


还需要重新设置一次密码

安装中文插件

安装成功后需要重启,安装失败重新点击install重装即可。
安装成功后,会查看到重启按钮,点击即可


重启后查看效果

Maven实现代码检测

本地需要有maven的环境

在idea中也要配置好


修改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>

在当前项目终端(idea)位置执行命令:mvn sonar:sonar


查看Sonar Qube界面检测结果

Sonar-scanner实现代码检测

  • 下载Sonar-scanner:https://binaries.sonarsource.com/?prefix=Distribution/sonar-scanner-cli/
  • 下载最新版本即可,要求Linux版本
  • 解压并配置sonar服务端信息
    • 由于是zip压缩包,需要安装unzip解压插件 解压压缩包
      unzip sonar-scanner-cli-5.0.1.3006-linux.zip
      
      配置sonarQube服务端地址,修改conf下的sonar-scanner.properties

生成令牌


执行命令检测代码

# 在项目所在目录执行以下命令
/usr/local/docker/jenkins_docker/data/sonar-scanner/bin/sonar-scanner  -Dsonar.sources=./ -Dsonar.projectname=demo -Dsonar.projectKey=demo -Dsonar.java.binaries=target/ -Dsonar.login=[填在sonar中生成的令牌]


查看SonarQube界面检测结果

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

Jenkins安装插件

Jenkins配置Sonar Qube

开启Sonar Qube权限验证


获取Sonar Qube的令牌

配置Jenkins的Sonar Qube信息

配置Sonar-scanner

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

配置任务的Sonar-scanner

-Dsonar.projectname=${JOB_NAME}
-Dsonar.projectKey=${JOB_NAME}
-Dsonar.source=./
-Dsonar.java.binaries=target/
-X

构建任务

记得给工作目录加权 不然会提示Unable to create root temp directory /var/jenkins_home/workspace/mytest/.scannerwork/.sonartmp

Chmod 777 -R /usr/local/docker/jenkins_docker/data/workspace/


文章来源: https://xz.aliyun.com/t/12785
如有侵权请联系:admin#unsafe.sh