jenkins 使用oclint 扫描 oc 代码

本文介绍如何在Jenkins环境中集成OCLint进行静态代码分析。首先通过Homebrew安装OCLint和xcpretty,接着利用xcodebuild构建项目,并使用xcpretty解析编译日志。最后使用OCLint对解析结果进行扫描,并通过Jenkins展示分析结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jenkins 环境的搭建,在这里不在赘述,下面我们写一写,如何接入oclint。

OCLint是一个强大的静态代码分析工具,可以用来提高代码质量,查找潜在的bug,主要针对c,c++和Objective-c的静态分析。功能非常强大。项目地址:http://oclint.org/

1、oclint 与 xcpretty的安装

推荐是用Homebrew 来安装,快速且节省精力,也可以选择源码安装或者release包来安装,不过需要配置环境变量的内容。使用Homebrew 安装时,需要先设置brew的第三方仓库,然后安装,xcpretty 用于解析xcodebuild 构建日志,解析后的结果交给oclint来使用:

oclint的安装:
brew tap oclint/formulae
brew install oclint
xcpretty的安装:

gem install xcpretty

2、构建与静态代码扫描

1)、构建与解析日志

我们使用xcodebuild 来构建。

xcodebuild 默认构建的格式Release ,需要构建Debug 或者 AdHoc 包自行添加相关参数来执行。build之后,使用xcpretty 来解析编译日志。

/usr/bin/xcodebuild | tee xcodebuild.log | xcpretty -r json-compilation-database

 -r json-compilation-database 制定的数据的输出格式为json格式。输出的数据为build/reports/compilation_db.json 

2)、解析结果使用oclint做扫描

使用oclint时需要将build/reports/compilation_db.json 重新命名为 compile_commands.json 并移动至当前目录。

oclint-json-compilation-database -- -report-type pmd -o oclint.xml

将结果输出格式为pmd 格式,然后通过jenkins的pmd插件就可以做结果的展示了。

3)、oclint其它参数

-e   Pods   去掉依赖的第三方库的扫描

-- -rc=LONG_LINE=200  改变默认函数行数为100

LINT_DISABLE_RULES="-disable-rule=LongClass \  

            -disable-rule=LongLine \  

            -disable-rule=LongMethod \  

            -disable-rule=LongVariableName \  

            -disable-rule=ShortVariableName \  

            -disable-rule=HighNcssMethod \  

            -disable-rule=DeepNestedBlock \  

            -disable-rule=TooManyFields \  

            -disable-rule=TooManyMethods \  

            -disable-rule=TooManyParameters \  

            -disable-rule=IvarAssignmentOutsideAccessorsOrInit"  

命令行最后加入 $LINT_DISBALE_RULES 可以禁用某些不需要的规则

转载于:https://www.cnblogs.com/shanys/p/5873554.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值