Jenkins iOS PMD 代码警告检测实践

初成型,还有点上问题。不知道是不是跟我们项目有问题,明明设置了忽略老是检测一个第三方库,不过是可以跑起来的,只是检测错了地方,有时间我再试试其他项目。

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


你可能感兴趣的:(Jenkins iOS PMD 代码警告检测实践)