文章标题

Sonar简介

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。
与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

Sonar服务器端安装
  1. 安装数据库

    docker-compose文件:

    version: '2'
       services:
            mysql:
                image: mysql
                environment:
                        - MYSQL_ROOT_PASSWORD=sonar
                ports:
                        - "33306:3306"
                restart: always
 创建用户以及数据库
      CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

      CREATE USER 'sonar' IDENTIFIED BY 'sonar';
      GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
      GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
      FLUSH PRIVILEGES;
  1. sonar服务器安装

    docker-compose文件

    version: '2'
       services:
            sonar:
                image: sonarqube
                ports:
                        - "9000:9000"
                        - "9092:9092"
                environment:
                        - SONARQUBE_JDBC_USERNAME=sonar
                        - SONARQUBE_JDBC_PASSWORD=sonar
                        - SONARQUBE_JDBC_URL=jdbc:mysql://ip:33306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
                        - SONARQUBE_JDBC_DRIVERCLASSNAME=com.mysql.jdbc.Driver

                volumes:
                        - /etc/localtime:/etc/localtime
                restart: always
使用docker-compose up -d 启动服务端之后,就可以通过url http://ip:9000访问服务端页面了。
Sonar与jenkins集成
1. Jenkins里面安装sonar插件
2. Jenkins 系统管理 -> 设置sonar服务器url
3. Jenkins的jobs配置

   -  构建环境点选"Prepare SonarQube Scanner environment"
   -  构建后添加 "Execute SonarQube Scanner"

       并在Analysis properties中添加
         sonar.projectKey= xxx
         sonar.projectName= xxx
         sonar.projectVersion=1.0.0
         sonar.sources=app/
         sonar.sourceEncoding=UTF-8
      如果支持多个module
        sonar.projectKey= xxx 
        sonar.projectName= xxx
        sonar.projectVersion=1.0.4
        sonar.sources=.
        sonar.sourceEncoding=UTF-8
        sonar.modules=module1, module2
        module1.sonar.projectBaseDir=module1/
        module2.sonar.projectBaseDir=module2/
     如果要支持java的lombok

     1) mvn编译选项里面添加 “dependency:copy-dependencies”

     2) 设置sonar.java.binaries以及sonar.java.libraries
          sonar.projectKey= xxx 
          sonar.projectName= xxx
          sonar.projectVersion=1.0.4
          sonar.sources=.
          sonar.sourceEncoding=UTF-8
          sonar.java.binaries=target/classes
          sonar.java.libraries=target/dependency/*.jar
          sonar.modules=module1, module2
          module1.sonar.projectBaseDir=module1/
          module2.sonar.projectBaseDir=module2/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值