zoukankan      html  css  js  c++  java
  • 使用OCLint进行Code Review

    OCLint是一个静态分析工具,支持C,C++,Objective-C代码,可以高效的实现Code Review的自动化,检查代码中的缺陷。

    1. 未使用的变量参数
    2. 复杂的代码逻辑,多个if/else的判断
    3. 不需要废弃的代码
    4. 过长的方法名或过多的参数
    5. 其它,可自己设置规则 

    下面开始从坏境搭建到配置来讲解OCLint到使用。

    一 坏境搭建

    1.通过homebrew安装OCLint
    brew tap oclint/formulae
    

      

    brew install Clint
    
    2.安装xcpretty
    sudo gem install xcpretty  

    安装完后,如果控制台输入oclint后出现下面内容,表示安装成功

    二 XCode配置

    1.增加taget

    在现有xcode项目中增加target,如下图,命名为"oclint"

    2.增加脚本

    选中OCLint Target,进入Build Phases选项,点左上角的加号,选择“New Run Script Phase”

    脚本输入框输入如上脚本代码:

    chmod -R 777 $SRCROOT/oclint
    $SRCROOT/oclint/oclint.sh
    

      

    3.创建脚本文件

    在主工程目录下新建oclint文件夹,新建oclint.sh脚本文件,编辑内容如下:

    cd到工程目录下,执行命令:

     

    脚本具体内容:

    export LC_ALL=en_US.UTF-8
    source ~/.bash_profile
    #获取项目路径
    PROJECT_DIR=$(cd `dirname $0`;cd ..;pwd)
    cd ${PROJECT_DIR}
    buildPath="${PROJECT_DIR}/oclint/build"
    compilecommandsJsonFolderPath="${PROJECT_DIR}/oclint"
    compilecommandsJsonFilePath="${PROJECT_DIR}/oclint/compile_commands.json"
    rm -rf "$compilecommandsJsonFolderPath/build"
    xcodebuild SYMROOT=$buildPath | xcpretty -r json-compilation-database -o $compilecommandsJsonFilePath
    cd $compilecommandsJsonFolderPath
    oclint-json-compilation-database -- -report-type xcode 
    -rc CYCLOMATIC_COMPLEXITY=10 
    -rc LONG_CLASS=1000 
    -rc LONG_METHOD=50 
    -rc LONG_LINE=140 
    -rc LONG_VARIABLE_NAME=30 
    -rc SHORT_VARIABLE_NAME=1 
    -rc MAXIMUM_IF_LENGTH=5 
    -rc MINIMUM_CASES_IN_SWITCH=2 
    -rc NCSS_METHOD=30 
    -rc NESTED_BLOCK_DEPTH=5 
    -rc TOO_MANY_METHOD=30 
    -rc TOO_MANY_PARAMETERS=5 
    -max-priority-1 0 
    -max-priority-2 5 
    -max-priority-3 10
    oclint sh
    4.compile_commands.json配置

    使用xcpretty生成的compilation_db.json,

    xcodebuild |xcpretty -r json-compilation-database

     工程同级目录下会生成build/reports/ompilation-db.json,拷贝到oclint目录下,重命名为compile_commands.json。如步骤3。

    以上配置完成后,target选择oclint,可以进行编译了,这时就可以看到设置的规则警告。

    项目中脚本设置了-rc LONG_LINE=140 表示一行不能超过140,所以会出警告。下一步将具体介绍规则配置。

    三 OCLint规则

    系统默认规则

    四 OCLint自定义规则

     待完成。。

  • 相关阅读:
    消息中间件(一)MQ详解及四大MQ比较
    SIP协议
    PAT (Basic Level) Practice 1008 数组元素循环右移问题
    LeetCode-Algorithms 1. 两数之和
    PAT (Basic Level) Practice 1040 有几个PAT
    PAT (Basic Level) Practice 1023 组个最小数
    PAT (Basic Level) Practice 1021 个位数统计
    PAT (Basic Level) Practice 1007 素数对猜想
    PAT (Basic Level) Practice 1006 换个格式输出整数
    PAT (Basic Level) Practice 1004 成绩排名
  • 原文地址:https://www.cnblogs.com/menchao/p/11912417.html
Copyright © 2011-2022 走看看