1

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

mvn clean package cobertura:check-integration-test

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

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

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

第一步运行 cobertura:

mvn clean package cobertura:check-integration-test

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

mvn clean package

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

4

1 回答 1

0

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

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

于 2016-06-17T09:19:40.850 回答