2016-07-08 103 views
0

我正在使用CPD工具在我的项目中查找重复代码。我试过了这个链接CPD Usage中给出的命令行选项。 我想以xml格式生成报告,并需要将其存储在特定位置。但它在控制台本身显示报告,并不存储在任何地方。 Refer this screenshot.如何使用CPD生成XML报告(复制粘贴检测器)?

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

在上面的链接中,他们已经给出了ANT工具的信息。那么有什么办法可以在MSBuild工具中做到这一点?

回答

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与正确的目录。