使用OCLint和Sonar对iOS代码分析和质量管理

Posted kiven2015

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用OCLint和Sonar对iOS代码分析和质量管理相关的知识,希望对你有一定的参考价值。

OCLint 是一个强大的静态代码分析工具,可以用来提高代码质量,查找潜在的bug,主要针对c,c++和Objective-c的静态分析。

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。

SonarQube安装
1
brew install sonarqube
SonarQube汉化

汉化插件

https://github.com/SonarQubeCommunity/sonar-l10n-zh

下载后放入如下目录:

1
/usr/local/Cellar/sonarqube/6.5/libexec/extensions/plugins
mysql安装
1
brew install mysql

创建sonar数据库

配置sonar连接mysql
1
2
3
4
5
6
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
安装xcpretty
1
gem install xcpretty
安装OCLint
1
2
brew tap oclint/formula
brew install oclint
安装sonar-scanner
1
brew install sonar-scanner

安装sonar-objective-c-plugin

backelite-sonar-objective-c-plugin-0.6.2.jar

下载后放入如下目录:

1
/usr/local/Cellar/sonarqube/6.5/libexec/extensions/plugins
重启sonar
1
sonar restart

到此Sonar环境已经基本配置好了,打开 http://127.0.0.1:9000

技术分享图片

工程配置

run-sonar.shsonar-project.properties模板放到根目录下, 修改.properties文件的内容, 然后执行run-sonar.sh就可以了。文件地址https://github.com/LeoXu92/SonarShell-iOS

最终效果
技术分享图片

(ps.技术债累积的比较多,是时候改改了。)

遇到的问题

执行sonar-scanner时提示”The rule ‘XXX’ does not exist”

在oclint在新版本版本会新增了些规则, 需要更新sonar服务器上对应的规则列表.

先下载https://github.com/LeoXu92/sonar-objective-c代码。

然后后在路径: sonar-objective-c-develop/sonar-objective-c-plugin/src/main/resources/org/sonar/plugins/oclint 下的profile-oclint.xmlrules.txt这两个文件。添加对应的规则。

然后再执行 build-and-deploy.sh 编译出新的jar包。

如果启动不了SonarQube

删除sonarqube/6.7.1/libexec/temp文件夹重启试试。


以上是关于使用OCLint和Sonar对iOS代码分析和质量管理的主要内容,如果未能解决你的问题,请参考以下文章

jenkins 使用oclint 扫描 oc 代码

使用Sonar管控代码质量

使用 OClint 进行静态代码分析

代码质量管理的开源平台Sonar

持续集成之代码质量管理———Sonar

持续集成之代码质量管理——Sonar