SonarQube 服务搭建与配置

SonarQube是神马

1.SonarQube(又叫Sonar)是对代码进行静态检测的开源平台,利用这个工具可以发现我们代码里各种隐藏的Bug和潜在的问 题,在团队协作的开发模式中可以更好的控制代码质量。
2.支持多种平台(Windows、Linux)和多种开发语言(java、C#、JavaScript、PHP等),并可以和Jekins、JIRA等多种外部工具和IntelliJ IDEA等开发工具无缝集成。
3.可视化界面,提供各种维度的质量查询和分析。

如何使用

准备工作

扫描配置

  • maven扫描 配置
    maven配置文件添加节点

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <profile>
    <id>sonar</id>
    <activation>
    <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
    <sonar.jdbc.url>
    <![CDATA[jdbc:mysql://127.0.0.1:3306/sonar]]>
    </sonar.jdbc.url>
    <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
    <sonar.jdbc.username>sonar</sonar.jdbc.username>
    <sonar.jdbc.password>sonar</sonar.jdbc.password>
    <sonar.jdbc.maxWait>50000</sonar.jdbc.maxWait>
    <sonar.jdbc.minEvictableIdleTimeMillis>600000</sonar.jdbc.minEvictableIdleTimeMillis>
    <sonar.jdbc.timeBetweenEvictionRunsMillis>30000</sonar.jdbc.timeBetweenEvictionRunsMillis>
    <sonar.host.url>http://localhost:9000</sonar.host.url>
    </properties>
    </profile>

    执行maven命令mvn sonar:sonar 可扫描项目并上传质量报告

  • sonar-runner 扫描配置
    a.环境变量配置
    系统环境变量

    1
    2
    SONAR_RUNNER_HOME D:\Java\sonar-runner-2.4
    Path 追加 ;%SONAR_RUNNER_HOME%\bin;

    b.sonar-runner.properties配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #Configure here general information about the environment, such as SonarQube DB details for example
    #No information about specific project should appear here
    #----- Default SonarQube server
    sonar.host.url=http://localhost:9000
    #----- PostgreSQL
    #sonar.jdbc.url=jdbc:postgresql://localhost/sonar
    #----- MySQL
    sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
    #----- Oracle
    #sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
    #----- Microsoft SQLServer
    #sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
    #----- Global database settings
    sonar.jdbc.username=sonar
    sonar.jdbc.password=sonar
    #----- Default source code encoding
    sonar.sourceEncoding=UTF-8
    #----- Security (when 'sonar.forceAuthentication' is set to 'true')
    sonar.login=admin
    sonar.password=admin

    c、本地项目配置文件 项目根目录
    sonar-project.properties配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sonar.projectKey=projectKey
    sonar.projectName=projectName
    sonar.projectVersion=1.0
    # Set modules IDs
    sonar.modules=projectmodules
    # Modules inherit properties set at parent level
    sonar.sources=src
    sonar.sourceEncoding=UTF-8
    sonar.language=java
    sonar.java.binaries=target
    # By default, the base directory for a module is <current_dir>/<module_ID>.

    至此 使用命令行进入到项目根目录
    输入命令 sonar-runner 可以完成项目的扫描和上传报告

参考

https://zhuanlan.zhihu.com/p/22926742
http://blog.csdn.net/xiajian2010/article/details/22983825
http://www.cnblogs.com/parryyang/p/6270402.html