zoukankan      html  css  js  c++  java
  • 代码质量工具 Sonarqube + Jenkins 搭建集成

    环境说明

    CentOS 7.4.1708
    postgres:12.3
    sonarqube:8.4.2-community

    # 创建存储卷
    docker volume create --name sonarqube_data
    docker volume create --name sonarqube_extensions
    docker volume create --name sonarqube_logs
    
    # sonar 不能直接挂载本地目录,否则语言没法正常安装上
    # mkdir -p /data2/sonar/sonarqube/{extensions,logs,data,conf}
    mkdir -p /data2/sonar/postgres/{postgresql,data}
    
    docker pull postgres:12.3
    docker pull sonarqube:8.4.2-community
    
    cd /data2/sonar
    # 使用 docker-compose 管理
    cat docker-compose.yml 
    version: '3'
    services:
      postgres:
        image: postgres:12.3
        restart: always
        container_name: postgres
        ports:
          - 5432:5432
        volumes:
          - /data2/sonar/postgres/postgresql:/var/lib/postgresql
          - /data2/sonar/postgres/data:/var/lib/postgresql/data
          - /etc/localtime:/etc/localtime:ro
        environment:
          TZ: Asia/Shanghai
          POSTGRES_USER: sonar
          POSTGRES_PASSWORD: sonar
          POSTGRES_DB: sonar
    
      sonar:
        image: sonarqube:8.2-community
        container_name: sonar
        depends_on:
          - postgres
        volumes:
          - sonarqube_extensions:/opt/sonarqube/extensions
          - sonarqube_logs:/opt/sonarqube/logs
          - sonarqube_data:/opt/sonarqube/data
          # 设置与宿主机时间同步
          - /etc/localtime:/etc/localtime:ro
        ports:
          - 9000:9000
        command:
          # 内存设置
          - -Dsonar.ce.javaOpts=-Xmx2048m
          - -Dsonar.web.javaOpts=-Xmx2048m
          # 设置服务代理路径
          - -Dsonar.web.context=/
          # 此设置用于集成gitlab时,回调地址设置
          - -Dsonar.core.serverBaseURL=https://sonarqube.example.com
        environment:
          TZ: Asia/Shanghai
          SONARQUBE_JDBC_USERNAME: sonar
          SONARQUBE_JDBC_PASSWORD: sonar
          SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
    
    volumes:
      sonarqube_extensions:
        external:
          name: sonarqube_extensions
      sonarqube_logs:
        external:
          name: sonarqube_logs
      sonarqube_data:
        external:
          name: sonarqube_data
    
    # 启动 
    docker-compose up -d
    

    访问服务器的 9000 端口,默认密码为 admin/admin, 安装中文插件

    配置用户的 token,用于 jenkins 使用,记得保存~

    配置 Jenkins

    安装插件

    SonarQube Scanner for Jenkins

    配置 SonarQube servers

    系统管理 -》 SonarQube servers

    Server authentication token 为 sonar 创建一个 Secret text 类型的凭证,Secret 为 上面的 token 值

    配置项目

    在项目中加入 Execute SonarQube Scanner

    配置 Analysis properties

    sonar.projectKey=dev3-test
    sonar.projectName=dev3-test
    sonar.projectVersion=1.0
    
    sonar.language=java
    sonar.sourceEncoding=UTF-8
    
    sonar.sources=$WORKSPACE
    sonar.java.binaries=$WORKSPACE
    

    成功运行后,可以回到 sonarqube 查看问题

    或者可以在 jenkins 执行 shell 时候指定

    mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar -Dsonar.host.url=http://YOUR_IP:9000 -Dsonar.projectKey=${JOB_NAME} -Dsonar.login=admin -Dsonar.password=admin
    

    安装参考 https://www.cnblogs.com/paopaohll/p/13223433.html

  • 相关阅读:
    django + dropzone.js 上传文件
    随机知识点---后续整理
    Python项目在Jenkins中的自动化测试实践(语法检查、单元测试,coverage(代码覆盖率)、自动打包)
    my read / zikao / nanjingdaxue
    OS + CentOS kernel parameter
    network / Wireshark
    使用docker部署springBoot并且yml配置文件不打包到jar中
    idea + springBoot项目配置远程调试
    MySql优化建议
    springBoot事务失效导致批量插入性能巨幅降低
  • 原文地址:https://www.cnblogs.com/klvchen/p/13601681.html
Copyright © 2011-2022 走看看