sonarqube+oclint 扫描ios代码

1.环境安装不赘述,默认相关依赖包已经安装完成,ios需要的证书配置完成

xcode

xcpreety

oclint

2. 在执行xcodebuild前最好执行下analyze

3. xcodebuild -workspace XXX.xcworkspace -scheme XXX -configuration Debug COMPILER_INDEX_STORE_ENABLE=NO| tee xcodebuild.log| xcpretty -r json-compilation-database --output compile_commands.json

4. oclint-json-compilation-database -e oclint -v oclints_args -- -report-type pmd -o ../sonar-reports/oclint.xml \

-rc CYCLOMATIC_COMPLEXITY=10 \

-rc LONG_CLASS=1000 \

-rc LONG_METHOD=50 \

-rc LONG_LINE=140 \

-rc LONG_VARIABLE_NAME=30 \

-rc SHORT_VARIABLE_NAME=1 \

-rc MAXIMUM_IF_LENGTH=5 \

-rc MINIMUM_CASES_IN_SWITCH=2 \

-rc NCSS_METHOD=30 \

-rc NESTED_BLOCK_DEPTH=5 \

-rc TOO_MANY_METHOD=30 \

-rc TOO_MANY_PARAMETERS=5 \

-max-priority-1=0 \

-max-priority-2=5 \

-max-priority-3=10

5. sonar-reports/oclint.xml 和sonar-project.properties同级目录。我在sonar-project.properties中修改了oclint.xml的路径地址但是没有生效,在执行sonar-scanner时还是会提示找不到sonar-reports/oclint.xml,这样会导致扫描结果没有任何objective-c相关的任何错误

6.sonar-project.properties相关配置信息

sonar.projectKey=XXXX

sonar.projectName=XXXX

sonar.projectVersion=1.1

sonar.sources=./

sonar.language=objectivec,html,python

sonar.host.url=http://ip:9000

sonar.sourceEncoding=UTF-8

sonar.login=XXXX

sonar.objectivec.oclint.report=sonar-reports/oclint.xml

sonar.branch.name=XXXXX

7. 运行sonar-scanner

问题总结

    1.oclint.xml路径

    2.oclint.xml中&需要换成and,否则在执行sonar-scanner时会报无法识别的错

    3.xcodebuild时加上参数COMPILER_INDEX_STORE_ENABLE=NO,是因为我本地装了两个xcode,如果不加上这个参数,在使用oclint解析compile_commands.json时会无法解析成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容