我正在使用3.1.0的三叶草插件的Checkstyle和PMD。
下面的代码将在工具化类的启动时追加
public static class __CLR3_1_0crcrhnxpu1rh{public static com_cenqua_clover.CoverageRecorder R;static{com_cenqua_clover.CoverageRecorder _R=null;try{com_cen`enter code here`qua_clover.CloverVersionInfo.An_old_version_of_clover_is_on_your_compilation_classpath___Please_remove___Required_version_is___3_1_0();if(20110531154203887L!=com_cenqua_clover.CloverVersionInfo.getBuildStamp()){com_cenqua_clover.Clover.l("[CLOVER] WARNING: The Clover version used in instrumentation does not match the runtime version. You need to run instrumented classes against the same version of Clover that you instrumented with.");com_cenqua_clover.Clover.l("[CLOVER] WARNING: 下面一行将被附加到每一行检测代码中。
__CLR3_1_0crcrhnxpu1rh.R.inc(462);这是预期的行为吗?还是因为工具中使用的Clover版本与错误消息中所述的运行时版本不匹配?
发布于 2013-11-26 00:14:57
我可以找到这个问题的根本原因。它的发生是因为仪器化的代码。我有CheckStyle的插件,PMD,查找Bug和代码覆盖(三叶草)。三叶草仪器的代码查找代码覆盖范围。在这种情况下,三叶草首先被执行,然后所有其他插件。因此,CheckStyle和PMD也运行在仪器化代码上,并抛出不相关的警告。要解决这个问题,要么改变插件运行的顺序,要么排除测试代码。
发布于 2013-12-06 12:03:59
这是预期的行为吗?
是的,这是一种预期的行为。与使用字节码的Emma/Cobertura/JaCoCo不同的是,亚特兰西安三叶草的仪器是基于源代码的。这就是为什么您可以看到其他说明的原因。
参考资料:
发布于 2014-01-30 16:00:02
这似乎是你要问的问题是,如何让三叶草来测试你的代码,以及如何让PMD或其他报告工具(Checkstyle,PMD,FindBugs)不使用分析源.
在开始配置cloverOutputDirectory之前,我们也遇到过类似的问题。
<reporting>
<plugins>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-clover2-plugin</artifactId>
<configuration>
<cloverOutputDirectory>${java.io.tmpdir}/clover/</cloverOutputDirectory>
<!-- ... -->
</configuration>
</plugin>
</plugins>
</reporting>请参阅:https://docs.atlassian.com/maven-clover2-plugin/latest/instrument-mojo.html
https://stackoverflow.com/questions/19941461
复制相似问题