Jenkins iOS PMD 代码警告检测实践
2017-12-23 本文已影响22人
十一岁的加重
初成型,还有点上问题。不知道是不是跟我们项目有问题,明明设置了忽略老是检测一个第三方库,不过是可以跑起来的,只是检测错了地方,有时间我再试试其他项目。
image.png
export PATH=$PATH:/Users/mac/.rvm/gems/ruby-2.4.0/bin
OCLINT_HOME=/usr/local/bin/oclint
export PATH=$PATH:$OCLINT_HOME/bin
export PATH=$PATH:/usr/local/Cellar/oclint/0.13/bin
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
cd $WORKSPACE
bash $WORKSPACE/PMDOclint.sh
同级文件PMDOclint.sh
内容
#!/bin/bash
function oclintForProject () {
myworkspace=???.xcworkspace # 替换workspace的名字
myscheme=??? # 替换scheme的名字
# 清除上次编译数据
if [ -d ./derivedData ];
then
echo '-----清除上次编译数据derivedData-----'
rm -rf ./derivedData
fi
xcodebuild clean
# 生成编译数据
xcodebuild -workspace ???.xcworkspace -scheme ??? -destination generic/platform=iOS -derivedDataPath derivedData -configuration Debug COMPILER_INDEX_STORE_ENABLE=NO | xcpretty -r json-compilation-database -o compile_commands.json
if [ -f ./compile_commands.json ]
then
echo '-----编译数据生成完毕-----'
else
echo "-----生成编译数据失败-----"
return -1
fi
# 生成报表
oclint-json-compilation-database -e MGBankCard -- \
-report-type pmd -o pmd.xml \
-rc LONG_LINE=200 \
-disable-rule ShortVariableName \
-disable-rule ObjCAssignIvarOutsideAccessors \
-disable-rule AssignIvarOutsideAccessors \
-max-priority-1=100000 \
-max-priority-2=100000 \
-max-priority-3=100000
if [ -f ./pmd.xml ]
then
rm compile_commands.json
echo '-----分析完毕-----'
return 0
else
echo "-----分析失败-----"
return -1
fi
}
oclintForProject