0

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

我在 CPD GUI 中试过这个并且工作正常。但出于我的需要,我想在 xml 文件中生成报告。这可能吗?

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

4

1 回答 1

2

可以使用输出流的重定向来创建 XML 文件。CPD 将报告输出到标准输出。如果您在命令行中执行 CPD,请使用重定向运算符

%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使用正确的目录。

于 2016-07-10T17:50:26.233 回答