我们有一个使用jdo enhancement的gradle项目。基本上:
增强器对Java编译器生成的字节码进行后处理,添加必要的字段和方法以实现所需的持久性功能。
当我尝试使用open clover plugin添加测试覆盖率时 - 我的测试开始失败。这是因为OpenClover使用source code instrumentation。
OpenClover将'jdo-enhanced'类作为备份移动 - 并构建了自己的类的检测版本,因此失去了所有的jdo增强功能。
鉴于这种窘境,是否可以一起使用openClover(源代码检测)和jdo增强?它在理论上是否可能?
与三叶草仪器不同,JDO增强修改字节码,而不是源。因此,这些任务可以序列化。 cloverInstrumentation -> compileCloverJava -> runJDOEnhancer
假设你有一个方法runJdoEnhancer,它接受sourceSet作为输入,这应该工作:
compileCloverJava.doLast {
runJdoEnhancer(sourceSets.clover, configurations.cloverRuntime)
}