使用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.sh
和sonar-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.xml
与rules.txt
这两个文件。添加对应的规则。
然后再执行 build-and-deploy.sh
编译出新的jar包。
如果启动不了SonarQube
删除sonarqube/6.7.1/libexec/temp
文件夹重启试试。