Mac环境下配置Sonarqube与Sonar-scanner

前言

在一个团队开发中,每个人的代码质量良莠不齐,因此我们需要把握好代码质量的关。这个往往决定这个团队的开发维护效率。如果使用不同风格的,不严谨的代码,在后续业务扩大,成员增多时会直接导致维护的高成本。每个团队都拥有自己的一套代码检查方式。对于小团队往往会选择一些开源的工具,本文主要介绍Mac环境下Sonarqube的安装以及Objective-C
团队开发中,代码质量的把关,往往决定了一个团队的开发维护效率。成员的增长,业务的扩大,不同风格、不严谨的代码,直接导致后续维护的高成本。本篇介绍MacSonarqube的安装以及添加Objective-CSwift支持。

准备

Sonarqube7.9版本开始不支持MySql,所以在Sonarqube-7.9版本中使用Postgresql数据库,后面也会区分两种方式进行配置。

下载

  1. JDK 11+
  2. Sonar7.9 ,使用社区版本
  3. Sonar-scanner
  4. MySql:支持 5.6 <= version < 8.0
  5. PostgreSQL,支持9.3->9.610.0版本

相关资源密码:x9g3

配置JDK

下载所需JDK并且安装;

方式一:

  1. Vim编辑.bash_profile

  2. 编辑JDK环境变量:

     JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
     PATH=$JAVA_HOME/bin:$PATH:.
     CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
     export JAVA_HOME
     export PATH
     export CLASSPATH
    
  3. 退出esc编辑模式,保存wq并退出,接着输入source .bash_profile使修改生效。

方式二:

直接到`.bash_profile`文件下编辑`.bash_profile`文件,编辑内容为方式一下的内容。

注意⚠️:

完成在终端输入java -version查看相应结果。

//会输出类似信息表示安装成功
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

安装MySql

  1. 下载的MySql安装完毕后,在系统偏好设置中启动MySql

    注意⚠️:MySql的初始密码安装完会显示在系统的通知栏,注意记录下方便后面修改密码;

  2. 在环境变量中添加,然后通过source .bash_profile使其生效。

     PATH=$PATH:/usr/local/mysql/bin
    
  3. 通过终端输入,然后输入密码进入MySql

     mysql -u root -p
    
  4. 输入以下命令修改root密码,最后重启MySql;

     ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    

安装PostgreSQL

下载好的安装包安装完成,用户名为postgres,在安装过程中记住输入的密码; 在MacLauncher中启动PgAdmin登录新建一个数据库,名字记住,后面在sonarqube中会用到;

安装 Sonarqube

下载好的压缩包解压出来的文件夹放到你想放到的位置,然后打开终端,进入到此文件夹下的bin/macosx-universal-64目录下,输入命令:

sonar.sh start

然后打开浏览器进入localhost:9000就可以看到Sonarqube主页。

配置数据库

这里为 Sonarqube 配置 MySql 或者 postgreSQL。

  1. 到刚刚安装SonarqubeSonar文件夹目录下,找到conf/sonar.properties文件,编辑文件加入对应数据库的配置。

    MySql

    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    sonar.jdbc.username=root
    sonar.jdbc.password=修改为自己的密码
    sonar.sorceEncoding=UTF-8
    sonar.login=admin
    sonar.password=admin

**PostgreSQL**
    
    sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=public
    sonar.jdbc.username=postgres
    sonar.jdbc.password=你的密码
    sonar.sorceEncoding=UTF-8
    sonar.login=admin
    sonar.password=admin
  1. 完成Sonar配置后,重启Sonar。到Sonar文件夹bin/macosx-universal-64目录下运行下方命令,完成后打开localhost:9000查看。

     sonar.sh restart
    

    # 主要命令一览, 建议添加alias到~/.bash_profile
    ./sonar.sh console #Debug信息
    ./sonar.sh start #启动服务
    ./sonar.sh stop #停止服务
    ./sonar.sh restart #重启服务

安装 Sonar-scanner

下载的文件解压或者直接移动到你的目标文件夹,配置环境变量(放置在原有Path变量前面):

SONAR_RUNNER_HOME=你的sonar-scanne文件价夹路径
PATH=$PATH:$SONAR_RUNNER_HOME/bin

然后通过source .bash_profile使其生效。然后通过命令sonar-scanner -v查看版本信息。

使用

在待扫描项目的根目录新建一个sonar-project.properties(注意⚠️命名不要错)文件,并输入以下信息:

# 项目标识,多个项目一定要改此值来区分
sonar.projectKey=my:project
# this is the name displayed in the SonarQube UI
sonar.projectName=xibaoxiaoandroid
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set. 
# If not set, SonarQube starts looking for source code from the directory containing 
# the sonar-project.properties file.
sonar.sources=带扫描项目路径
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
#如果扫描Java项目,此项是必须配置的
sonar.java.binaries=target/classes

保存完以后再待扫描根目录下执行命令,扫描完成后,在localhost:9000中查看到扫描结果。

sonar-scanner

检查 Objective-C、Swift 环境下运行

配置需要文件:sonar-swift

OCLint 安装与使用

sonarqubeObjective-CSwift的代码检测,需要依赖OCLintXcode工程的编译log的分析结果。简单说下过程,对Xcode工程进行xcodebuild,输出编译logOCLint对编译log进行分析,输出xmlsonarqube根据xml来显示可视化结果。

OCLint is a static code analysis tool for improving quality and reducing defects by inspecting C, C++ and Objective-C code and looking for potential problems.

OCLint安装方式见OCLint官网。

  1. Homebrew简单,但可能外网连不上
  2. 推荐直接download包,解压执行文件路径加入$PATH

具体安装所需文件可以参照sonar-swift的要求。

运行扫描结果

你可能感兴趣的:(Mac环境下配置Sonarqube与Sonar-scanner)