我发现一篇博客文章描述了如何在 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 插件配置中进行配置。但是我怎样才能告诉 Sonar 使用这个ObjCLanguage
库呢?我只需要它来检测 Sonar 的代码重复和可视化(因为它更漂亮)。