使用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自定义规则

 待完成。。

posted @ 2019-11-25 19:43  行藏在我  阅读(1402)  评论(0编辑  收藏  举报