如何使用Cobertura maven插件,以便字节码不被更改



我最近试图为我们的项目包含cobertura插件。但我遇到了一个奇怪的问题。现在,如果我尝试这样做:

mvn clean package cobertura:check-integration-test

我的项目组装得很好。但是部署后,这是我得到的消息:

java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/LightClassmapListener

据我了解,发生这种情况是因为cobertura改变了我的类的字节码。那么,我应该如何进行检查和构建代码呢?现在,我为团队城市提出了以下解决方案:

第一步运行 cobertura:

mvn clean package cobertura:check-integration-test

在第二步之后,运行正常程序集:

mvn clean package

这似乎

有效,但似乎有点奇怪,我必须运行两次打包过程(这需要双倍时间),只是为了使用不受 cobertura 插件影响的字节码进行干净的构建。

如果使用 qualinsight-mojo-cobertura ,您的类将在检测时备份,然后在报告时恢复(这反过来会导致生成的包中包含未检测的类)。

在入侵和报告之间,您可以根据需要运行测试(无论是UT,IT)(与maven-cobertura-plugin不同,qualinsight-mojo-cobertura不运行测试)。有关更多信息,请查看项目页面(尤其是插件默认绑定到的 Maven 阶段。

最新更新