zoukankan      html  css  js  c++  java
  • jenkins 使用oclint 扫描 oc 代码

    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 可以禁用某些不需要的规则

  • 相关阅读:
    Linux下查找大文件以及目录
    Linux 下定时备份数据库以及删除缓存
    java中main方法的 (String []args)
    RabbitMQ消息队列(二):”Hello, World“
    maven 多模块项目
    java 接口的作用和好处
    Centos下使用压缩包安装MySQL5.7
    修复mysql:[ERROR] Native table ‘performance_schema’
    连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
    centos6下无法使用lsof命令"-bash: lsof: command not found"
  • 原文地址:https://www.cnblogs.com/shanys/p/5873554.html
Copyright © 2011-2022 走看看