Sonar

官方网站
Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。帮助文档

系统构成

SonarQube平台由4部分组成:

  1. SonarQube服务器
    1. Web服务器的开发者,管理者,浏览质量快照和配置SonarQube实例
    2.基于Elasticsearch搜索服务器从UI向后搜索
    3.负责处理代码分析报告计算引擎服务器,并将其保存在数据库SonarQube
  2. SonarQube数据库来存储
  3. 多个插件
  4. 一个或多个SonarQube Scanners:可以与CI服务进行集成
     
    系统构成和相互关系

系统集成

1.开发人员的代码在自己的IDE和使用SonarLint运行局部分析。
2.开发人员推他们的代码到自己喜爱的供应链管理:SCM,SVN,TFVC,…
3.持续集成服务器触发自动构建和SonarQube扫描仪的运行SonarQube分析所需的执行。
4.分析报告被发送到SonarQube服务器进行处理。
5.SonarQube服务器处理和存储分析报告导致SonarQube数据库,并显示结果在UI中。
6.开发者审核,评论,挑战他们的管理,并通过SonarQube UI减少他们的技术债务问题。
7.经理收到的分析报告。 OPS使用API​​从SonarQube自动化配置和提取数据。 OPS使用JMX来监控SonarQube服务器。

 
操作流程

myaql5.7

  1. 配置my.ini文件

basedir = D:\\mysql-5.7.17-win32
datadir = D:\\mysql-5.7.17-win32\\data
port = 3306
  1. 进行初始化操作
    直接安装启动发现如下错误:

     
    启动失败

    应首先进行初始化操作才能正常

> mysqld  --initialize
> mysqld  --install
> net start mysql
  1. 修改初始化root密码
    修改my.ini,在[mysqld]下增加

skip-grant-tables

重启mysql服务

> mysql 
mysql> use mysql;
mysql> UPDATE user SET authentication_string=PASSWORD('123456') where USER='root';
mysql> flush privileges;
mysql> quit;

重新进行登录

> mysql -u root -p
123456
mysql> set password = password('123456');

终于修改成功了!感觉好复杂!!!

启动Sonar

修改配置文件

sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false

启动之后使用mysql数据库

示例使用

  1. 启动SonarQube,默认端口9000
  2. 下载Sonar Scanner作为客户端
  3. 下载演示用例子:在例子代码中执行客户端脚本
  4. 在web端查看结果

     
    结果截图
  5. 配置文件中修改端口和应用
    默认的端口为9000,应用为/,可以在配置文件中进行修改

sonar.web.context=/sonar
sonar.web.port=9881
  1. 下载中文插件
    使用管理者登录系统:默认admin/admin
    在配置->系统->更新中心中可以安装中文插件:查询chinese即可安装
  2. 配置数据库
    使用Mysql,版本必须在5.5以上,使用innodb引擎。在配置文件中增加如下的内容

sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useSSL=false

运行启动脚本,需要比较长的时间进行数据库初始化

Sonar客户端

客户端主要有:sonar-scanner
maven客户端:

  1. 使用自定义的mvn setting.xml文件,增加如下的内容:

  <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://localhost:9881/sonar
            </sonar.host.url>
        </properties>      
    </profile>
  </profiles>
  1. 工程pom.xml文件中增加如下内容

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <sonar.language>java</sonar.language>
    </properties>
  1. 进行代码检查

mvn clean install -sC:\Users\Administrator\.m2\settings-sonar.xml
mvn sonar:sonar -sC:\Users\Administrator\.m2\settings-sonar.xml
  1. 在浏览器中查看执行结果

     
    执行结果
 

链接:https://www.jianshu.com/p/81a1904b7ad1