我最近尝试为我们的项目包含 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 插件影响的字节码进行干净的构建。