使用OCLint和Sonar對iOS程式碼分析和品質管理,oclintios
OCLint 是一個強大的靜態程式碼分析工具,可以用來提高代碼品質,尋找潛在的bug,主要針對c,c++和Objective-c的靜態分析。
Sonar 是一個用於代碼品質管理的開放平台。通過外掛程式機制,Sonar 可以整合不同的測試載入器,程式碼分析工具,以及持續整合工具。
SonarQube安裝
SonarQube漢化
漢化外掛程式
https://github.com/SonarQubeCommunity/sonar-l10n-zh
下載後放入如下目錄:
1 |
/usr/local/Cellar/sonarqube/6.5/libexec/extensions/plugins |
Mysql安裝
建立sonar資料庫
配置sonar串連mysql
123456 |
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=falsesonar.jdbc.username=rootsonar.jdbc.password=rootsonar.sorceEncoding=UTF-8sonar.login=adminsonar.password=admin |
安裝xcpretty
安裝OCLint
12 |
brew tap oclint/formulabrew 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
到此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
檔案夾重啟試試。