Code Review是开发过程中保证代码质量不可或缺的一部分,但是呢,要么是懒,要么是真没时间,在我们公司code review已从原来的流于形式到彻底废弃了。最近看了看项目代码,咋写的都有,看着确实难受,于是就动了“code review自动化”的念头。xcode里有内置的Analyser,但由于默认的规则太少导致功能实在很有限。找了半天,就盯上OCLint了。OCLint是啥我就不多说啦,具体可以查看OCLint官网。本篇博客记录了我如何使用oclint进行静态代码分析,只针对Mac。
一、环境配置
需要安装oclint和xcpretty。
1、安装oclint
方法一:brew安装
命令行执行:
$brew tap oclint/formulae
$brew install oclint
方法二:安装包安装
(1)进入到github上,下载最新(当前为oclint-0.13-x86_64-darwin-16.7.0.tar.gz)安装包,解压出来为oclint-0.13
,放到如下目录:/Users/layne/OCLint
,即路径为/Users/layne/OCLint/oclint-0.13
。
(2)将oclint添加到环境变量。vim打开~/.bash_profile(若没有则创建),添加如下代码:
OCLINT_HOME=/Users/layne/OCLint/oclint-0.13
export PATH=$OCLINT_HOME/bin:$PATH
终端执行:
$oclint
出现如下内容证明没问题:
oclint: Not enough positional command line arguments specified!
Must specify at least 1 positional argument: See: oclint -help
方法三:源码安装 (若要自定义规则,则必须使用源码方式安装,后边会说到具体方法。)
1、安装CMake和Ninja
brew install cmake ninja
CMake和Ninja是代码编译工具,因此必须要先安装。
2、从github上下载oclint源码,解压之后重命名为oclint-0.13,然后放到如下目录(随意):/Users/layne/OCLint
,最终为/Users/layne/OCLint/oclint-0.13
3、打开终端进入到/Users/layne/OCLint/oclint-0.13/oclint-scripts
cd /Users/layne/OCLint/oclint-0.13/oclint-scripts
然后执行:
./make
之后就开始下载和编译,不过时间会比较长(40min左右),且还必须可以科学上网才可以。成功之后会有如下路径:/Users/layne/OCLint/oclint-0.13/build/oclint-release
,这个就是oclint的路径。
4、添加oclint到环境变量。执行:
vim ~/.bash_profile
将如下内容写入:
OCLINT_HOME=/Users/layne/OCLint/oclint-0.13/build/oclint-release
export PATH=$OCLINT_HOME/bin:$PATH
保存退出。重启终端之后在终端执行:oclint --version
,出现如下内容:
LLVM (http://llvm.org/):
LLVM version 5.0.0svn-r320669
Optimized build.
Default target: x86_64-apple-darwin17.3.0
Host CPU: broadwell
OCLint (http://oclint.org/):
OCLint version 0.13.
Built Dec 14 2017 (16:03:48).
至此oclint安装成功。
2、安装xcpretty
gem install xcpretty
说明:这里安装的xcpretty是最新版,github上的oclint源码应该是针对最新版的xcpretty进行了兼容。为什么这么说呢?因为我一开始是采用的方法二安装的oclint,运行oclint现成的规则没有问题。之后想要自定义规则,但是方法三又太麻烦了,于是我就偷懒从网上下载了别人事先编译好的oclint-0.12(这里说的"编译好的oclint"保留了当初编译的“现场”,可以进行自定义规则,而方法二中的是“干净“的oclint),然后进行自定义规则&#x