Java Clover:检测后附加不需要的代码

Java Clover:检测后附加不需要的代码,java,maven,plugins,clover,Java,Maven,Plugins,Clover,我正在使用3.1.0的Clover插件来检查样式和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

我正在使用3.1.0的Clover插件来检查样式和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版本与错误消息中所述的运行时版本不匹配?

我可以找到此问题的根本原因。这是因为插入指令的代码。我有CheckStyle、PMD、Find Bug和Code Coverage(Clover)插件。Clover向代码插入仪器以查找代码覆盖率。在本例中,Clover首先被执行,然后是所有其他插件。因此,CheckStyle和PMD也针对插入指令的代码运行,并抛出不相关的警告。要解决这个问题,要么改变插件运行的顺序,要么排除插入指令的代码

这是预期行为吗

是的,这是一种预期的行为。与Emma/Cobertura/JaCoCo插装字节码不同,Atlassian Clover的插装基于源代码。这就是为什么您可以看到其他说明的原因

参考:


您要问的问题似乎是如何让clover插入代码,如何让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>

com.atlassian.maven.plugins