我想修改CPD以仅在生成报告时吐出Found a X line (Y tokens) duplication in the following files: ...
,即禁止源代码行。我有/ src / files并尝试通过注释来修改/ src / net / sourceforge / pmd / cpd /中的SimpleRenderer.java
String source = match.getSourceCodeSlice();
if (trimLeadingWhitespace) {
String[] lines = source.split("[" + PMD.EOL + "]");
int trimDepth = StringUtil.maxCommonLeadingWhitespaceForAll(lines);
if (trimDepth > 0) {
lines = StringUtil.trimStartOn(lines, trimDepth);
}
for (int i=0; i<lines.length; i++) {
rpt.append(lines[i]).append(PMD.EOL);
}
return;
}
然而,报告没有改变。我是一个Java新手,所以记住这一点。我是否需要以某种方式重建Eclipse中的pmd-4.2.x?
答案 0 :(得分:1)
有不同的方法可以实现这一目标:
完全不使用egrep修改PMD / CPD。你可以,例如对报告进行过滤后:
bin/run.sh cpd --minimum-tokens 100 --files src --encoding UTF-8 \
| egrep "^Found a |^Starting at line "
现在只输出以“Found a”或“Starting at line”开头的行。
修改PMD / CPD以调整报告格式。但是,我建议将此修改后的报告格式作为单独的格式实施,例如将其命名为“text_without_sources”,而不是更改默认格式。然后,您将使用bin/run.sh cpd --format text_without_sources ...
调用CPD。
在这种情况下,您需要从源代码构建PMD。 PMD使用Maven来构建(您可以在开发期间使用eclipse - 但是包使用maven构建)。在https://github.com/pmd/pmd克隆源的顶级目录中mvn clean package
之后,您将在目录pmd-dist/target/
中找到二进制文件。
查看报告在CPDConfiguration.java中的集成方式 - 您可以添加自己的SimpleRenderer版本。