sonarqube和mvn整合

SonarQube(Sonar)是一个用于管理代码质量的开源平台。SonarQube目前已支持超过20种主流编程语言,它管理的代码质量主要涉及7个维度:架构与设计、重复、单元测试、复杂度、潜在的bug、代码标准、注释。

  本文,笔者将围绕搭建SonarQube这样的代码质量管理平台这个主题展开,结合java代码实例一步步讲述具体的过程,其中涉及Sonar的下载安装、创建对应Mysql数据库以及运行和管理,并对实践过程中出现的一些问题进行了分析和解决。

  注:本文中所有的实践都是在Docker虚拟机下进行,但目测同样适用于各个平台。

  1. 安装postgres数据库
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    postgres:
    image:
    registry.cn-shenzhen.aliyuncs.com/zhouqi/postgres:1.0
    environment:
    - POSTGRES_USER=root
    - POSTGRES_PASSWORD=000000
    ports:
    - "5432:5432"
    container_name:
    postgres
  1. 安装sonarqube

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sonarqube:
    image:
    registry.cn-shenzhen.aliyuncs.com/zhouqi/sonarqube:2.0
    depends_on:
    - postgres
    environment:
    - SONARQUBE_JDBC_USERNAME=root
    - SONARQUBE_JDBC_PASSWORD=000000
    - SONARQUBE_JDBC_URL=jdbc:postgresql://192.168.137.60/sonar
    ports:
    - "9000:9000"
    - "9092:9092"
    container_name:
    sonarqube
  2. 配置maven

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <settings>
    <pluginGroups>
    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
    <profile>
    <id>sonar</id>
    <activation>
    <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
    <!-- Optional URL to server. Default value is http://localhost:9000 -->
    <sonar.host.url>
    http://myserver:9000
    </sonar.host.url>
    </properties>
    </profile>
    </profiles>
    </settings>
  3. idea运行

    1
    2
    mvn install
    mvn sonar:sonar