Objective-C プロジェクトで CPD を使用する方法を説明するブログ投稿を見つけました。著者は、ObjectiveC 用の CPD 言語ライブラリも提供しました。残念ながら、Jenkins の Violations プラグインによって提供される GUI はかなり見苦しいものです。Sonar が使用する視覚化は、コードの分析にはるかに役立ちます。
次のコマンドを使用して、対応する CPD 出力を生成します。
java
-Xmx512m
-classpath pmd-4.2.5.jar:ObjCLanguage-0.0.6-SNAPSHOT.jar
net.sourceforge.pmd.cpd.CPD
--minimum-tokens 100
--files [Path to XCode project classes]
--language ObjectiveC
--encoding UTF-8
--format net.sourceforge.pmd.cpd.XMLRenderer > cpd-output.xml
私の知る限り、プロジェクト言語は Jenkins の Sonar プラグイン構成で構成できます。ObjCLanguage
しかし、Sonar にライブラリを使用するように指示するにはどうすればよいでしょうか? これは、コードの重複を検出し、Sonar で視覚化するためだけに必要です (非常に優れているため)。