• 代码质量工具 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

  • 相关阅读:
    将centos_yum源更换为阿里云(官方文档)
    JIRA 破解文件研究(Win 7环境)
    告别拖延症,你也可以轻松做到
    VS2015 + EF6连接MYSQL
    start-stop-daemon
    stm32开发板无法正常写入的问题或者写入后无法正常运行的问题
    进制转换
    回文判断程序
    C语言结构体指针的引用问题
    升级/安装主题插件提示权限不足 输入FTP解决办法
  • 原文地址:https://www.cnblogs.com/klvchen/p/13601681.html
Copyright © 2020-2023  润新知