Я хочу интегрировать CPD (Copy-Paste-Detection) в свой проект iOS. Я читал об этом здесьи здесь.
Для автоматического определения CopyPaste в коде я использую bash-скрипт:
echo "Checking files in ${SOURCE_ROOT}"
JARS_DIR=${PROJECT_DIR}/CPD
FULL_PATH_TO_CPD_XML_OUTPUT=${PROJECT_DIR}/cpd-output.xml
# Running CPD
java -classpath "${JARS_DIR}/ObjCLanguage-0.0.5-SNAPSHOT.jar:${JARS_DIR}/pmd.jar" net.sourceforge.pmd.cpd.CPD --minimum-tokens 100 --files "${SOURCE_ROOT}" -v --language ObjectiveC --encoding UTF-8 --format net.sourceforge.pmd.cpd.XMLRenderer > "${FULL_PATH_TO_CPD_XML_OUTPUT}"
# Running self :)
${BUILT_PRODUCTS_DIR} -cpd-xml "${FULL_PATH_TO_CPD_XML_OUTPUT}"
Этот код создает файл cpd-output.xml.Но выдает мне ошибку при компиляции time "Команда /bin/sh не выполнена с кодом выхода 126". Вот копия журнала http://pastebin.com/359k1Wni Я взял код из этого примера проекта Ошибка идет, тогда я комментирую эту строку:
${BUILT_PRODUCTS_DIR} -cpd-xml "${FULL_PATH_TO_CPD_XML_OUTPUT}"
Я пытался найти какую-либо информацию об этой ошибке, но нашел только несколько таких проблем без ответов. Я ничего не знаю о сценариях bash. Буду рад любому совету. Спасибо за внимание.
П.С. Автор следующего скрипта написал:
Для интеграции XCode и CPD мы добавим в сборку Этапы связаны с проектом, фаза запуска сценария, обычно состоящий из нескольких частей: Собственно вызов cpd Разбор cpd-output.xml Вывод в "правильном формате"