03 sonarQube+sonarScanner 环境搭建测试

个人理解:

SonarQube主要是数据的分析、统计展示,而SonarScanner则是扫码代码,采集数据,提交给SonarQube的数据库,SonarQube支持多种数据库,下面用的是Mysql;

环境搭建

  1. JDK1.8,Mysql5.7(或以上),关闭防火墙
  2. 创建数据库和账号
    • mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
    • mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
    • mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
    • mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
    • mysql> FLUSH PRIVILEGES;

    注意点:运行创建用户,一定要记得尝试使用新创建的用户登陆至mysql

  3. 下载sonarqube-7.3.zip
    • 由于SonarQube里面集成了ElasticSearch,所以启动的时候,不能用root权限,
    • useradd travis #创建用户
    • passwd travis #给travis设置密码
    • visudo
    • chown  -R travis:travis /module/download  #压缩包所在目录
    • chown  -R travis:travis /usr/local/src #解压到的目录
    • su travis
    • unzip sonarqube-7.3.zip  -d /usr/local/src/ #我是解压到 /usr/local/src下面的
    • cd /usr/local/src/sonarqube-7.3/conf
    • vim sonar.properties03 sonarQube+sonarScanner 环境搭建测试_第1张图片

      复制:

      sonar.jdbc.username=sonar

      sonar.jdbc.password=sonar

      sonar.jdbc.url=jdbc:mysql://localhost:3316/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

    • cd /usr/local/src/sonarqube-7.3/bin/linux-x86-64
    • ./sonar.sh start #启动服务
    • ./sonar.sh restart #重启
    • ./sonar.sh stop #停止服务

      测试:http://IP:9000 默认用户名密码都是admin
    • 问题:

      Caused by: java.lang.RuntimeException: can not run elasticsearch as root 
      切换用户:su travis,启动

    • 安装中文插件:
      03 sonarQube+sonarScanner 环境搭建测试_第2张图片

      安装完成,点击上面的红色提示自动重启

      点击Login In 登录的时候,可以通过用户名 获取token(也可以不生成);当执行分析时,令牌用于标识您;具体在Jenkins中使用时再说;

       

  4. 下载sonar-scanner-cli-3.2.0.1227-linux.zip
    • chmod 777 sonar-scanner-3.2.0.1227-linux.zip #我安装的时候用的ROOT没有chmod
    • unzip sonar-scanner-3.2.0.1227-linux.zip #我是解压到 /usr/local/src下面的
    • cd /usr/local/src/sonar-scanner-3.2.0.1227-linux/conf
    • vim sonar-scanner.properties

    03 sonarQube+sonarScanner 环境搭建测试_第3张图片

    复制:

    #----- Default SonarQube server

    sonar.host.url=http://172.172.0.107:9000

    #----- Default source code encoding

    sonar.sourceEncoding=UTF-8

    sonar.jdbc.username=sonar

    sonar.jdbc.password=sonar

    sonar.jdbc.url=jdbc:mysql://localhost:3316/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

    #sonar.jdbc.url=jdbc:mysql://localhost:3316/sonar?useUnicode=true&characterEncoding=utf8

    sonar.login=admin

    sonar.password=admin


       5.vim /etc/profile #配置环境变量
        export SONAR_SCANNER_HOME=/usr/local/src/sonar-scanner-3.2.0.1227-linux
        export PATH=${SONAR_SCANNER_HOME}/bin:${PATH}

    测试(直接使用sonarScanner测试代码):

    当前服务器,进入项目目录,我测试的是Java代码;

    我的项目目录:/home/xcc/travis

    • cd /home/xcc/travis
    • vim sonar-project.properties

      #项目的key 唯一

      sonar.projectKey=travis-tes2t  

      #项目的名字(可以随便写,这个名字在sonar显示的)

      sonar.projectName=travis-1

      #项目的版本

      sonar.projectVersion=1.0

      #需要分析的源码的目录,订单模块

      sonar.sources=order/src/

      #这是target(如果没编译可以不写)

      sonar.java.binaries=target/classes

      #java语言

      sonar.language=java

      #编码格式

      #sonar.sourceEncoding=UTF-8

    • sonar-scanner
      查看sonar服务器9000,project中

     

     

    拓展:

    Sonar-project.properties

     

    #required metadata

    #projectKey项目的唯一标识,不能重复

     

    sonar.projectKey=testuser

    sonar.projectName=testuser

    sonar.projectVersion=1.0 

    sonar.sourceEncoding=UTF-8

    sonar.modules=java-module

    sonar.java.binaries=.

    #,javascript-module,html-module

       

    # Java module

    java-module.sonar.projectName=Java Module

    java-module.sonar.language=java

    # .表示projectBaseDir指定的目录

    java-module.sonar.sources=.

    java-module.sonar.projectBaseDir=src/main/java

    sonar.binaries=classes

        

    # JavaScript module

    #javascript-module.sonar.projectName=JavaScript Module

    #javascript-module.sonar.language=js

    #javascript-module.sonar.sources=js

    #javascript-module.sonar.projectBaseDir=src/main/webapp

        

    # Html module

    #html-module.sonar.projectName=Html Module

    #html-module.sonar.language=web

    #html-module.sonar.sources=pages

    #html-module.sonar.projectBaseDir=src/main/webapp

     

     

    04 通过SonarQube进行质量分析的两种方式

你可能感兴趣的:(Jenkins,linux)