0

我正在为 Checkstyle 和 PMD 使用 3.1.0 的 Clover 插件。

以下代码在检测类开始时附加

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 版本与错误消息中所述的运行时版本不匹配?

4

3 回答 3

1

这是预期的行为吗?

是的,这是预期的行为。与检测字节码的 Emma/Cobertura/JaCoCo 相比,Atlassian Clover 的检测基于源代码。这就是您可以看到附加说明的原因。

参考:

为什么 Clover 使用源代码检测

于 2013-12-06T12:03:59.293 回答
0

我可以找到这个问题的根本原因。这是因为检测代码而发生的。我有 CheckStyle、PMD、Find Bug 和 Code Coverage (Clover) 的插件。Clover 检测代码以查找代码覆盖率。在这种情况下,首先执行 Clover,然后执行所有其他插件。因此,CheckStyle 和 PMD 也在针对检测代码运行,并抛出不相关的警告。要解决此问题,请更改插件运行的顺序或排除检测代码。

于 2013-11-26T00:14:57.313 回答
0

您要问的问题似乎是如何让三叶草检测您的代码,以及如何让 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

于 2014-01-30T16:00:02.767 回答