如何使用CPD(复制粘贴检测器)生成xml报告?

时间:2016-07-08 06:08:24

标签: jenkins msbuild pmd static-code-analysis cpd

我正在使用CPD工具在我的项目中查找重复代码。我已经尝试了此链接CPD Usage中给出的命令行选项。 我想以xml格式生成报告,需要将其存储在特定位置。但它在控制台本身显示报告,而不是将其存储在任何地方。 Refer this screenshot.

我在CPD GUI中尝试了这个并正常工作。但是为了我的需要,我想在xml文件中生成报告。这可能吗?

在上面的链接中,他们已经提供了ANT工具的信息。那么在MSBuild工具中有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

使用输出流的重定向可以创建XML文件。 CPD将报告输出到stdout。如果在命令行中执行CPD,请使用redirection operators

%PMD_PATH%\bin\cpd.bat --language cs --format xml --minimum-tokens 100 --files %SOURCE_DIR% > cpd-report.xml

在MSBuild工具中,您可以使用Exec Task。因为它只是在内部调用cmd,所以下面应该可以工作(我没试过......):

<PropertyGroup>
    <PmdPath>C:\pmd-bin-5.5.0</PmdPath>
    <SourceDir>C:\source</SourceDir>
</PropertyGroup>
<Target Name="CPD">
    <Exec Command="$(PmdPath)\bin\cpd.bat --language cs --format xml --minimum-tokens 100 --files $(SourceDir) > cpd-report.xml"/>
</Target>

您需要使用正确的目录定义属性PmdPathSourceDir