SonarQube简介及客户端集成

简介

SonarQube是一个代码质量管理平台,可以扫描监测代码并给出质量评价及修改建议,通过插件机制支持25+中开发语言,可以很容易与gradle\maven\jenkins等工具进行集成,是非常流行的代码质量管控平台。

通CheckStyle、findbugs等工具定位不同,SonarQube定位于平台,有完善的管理机制及强大的管理页面,并通过插件支持checkstyle及findbugs等既有的流行代码规则。

SonarQube服务器端安装

SonarQube分为两部分安装,服务器端安装及客户端安装

服务器端

服务器端安装需要JDK及Mysql,网上安装教程很多,不赘述。

可以参考这篇:https://www.cnblogs.com/qiumingcheng/p/7253917.html

官方下载地址:https://www.sonarqube.org/downloads/

官方文档:https://docs.sonarqube.org/latest/

服务器安装好后,可以得到以下信息,之后在客户端侧配置使用

Web管理界面URL:http://xxxx:9000

超级管理员用户名密码:admin/admin

数据库链接地址:jdbc:mysql://xxxxxxxxxx/sonar

数据库用户名密码:sonar/xxxxx

SonarQube客户端集成

客户端分为好几种,支持scanner客户端、ant、gradle、maven、jenkins、idea插件等

这里只说两种最常用的gradle和maven

Gradle集成

gradle的集成官方文档有点问题,说了好多种gradle的写法,但是经过多次试验,在gradle4.4上,以下写法测试通过

build.gradle

在buildscript板块增加插件

buildscript {
    dependencies {
        classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6"
    }
}

在project板块增加

 apply plugin: 'org.sonarqube'

sonarqube {
    properties {
        property "sonar.host.url", "http://xxxx:9000"
        property "sonar.jdbc.url", "jdbc:mysql://xxxxxxxxxx/sonar"
        property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
        property 'sonar.jdbc.username', 'sonar'
        property 'sonar.jdbc.password', 'xxxxx'
    }
}

在相应的目录下执行

gradle sonarqube

//如果要监测的是子工程
gradle xx工程名:sonarqube

看到页面上出现build sucess即为检测完毕。可以到http://xxxx:9000查看检查结果

Maven集成

更改本机的的setting文件:

在pluginGroups中增加组件:

  <pluginGroups>
    <pluginGroup>org.sonarsource.scanner.mavenpluginGroup>
  pluginGroups>

在profiles中增加组件:

<profiles>   
<profile>
            <id>sonarid>
            <activation>
                <activeByDefault>trueactiveByDefault>
            activation>
            <properties>
                
                <sonar.host.url>
                  http://xxxx:39000
                sonar.host.url>
            properties>
        profile>
  profiles>

在相应的工程目录下运行

mvn sonar:sonar

得到以上界面即为成功扫描,可以去WEB页面看项目了

其他客户端请参考:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

你可能感兴趣的:(安全)