Closed ghale closed 4 years ago
Wow @ghale you did not disappoint! This is a fantastic change. In fact it probably takes care of the issues I was already aware of including the problem that a test task might do the swapping of classes in a multiproject build while another java sibling project is attempting to compile against the original classes.
It will take me some time to digest your changes but the overall approach is very similar to the conclusions I had made as I was pondering the solution to the problems.
@ghale if you have no further updates I will squash the commits and merge to master in preparation for release. I have some additional changes I was working on that I plan to add before I publish the 3.0.0 release with this. I will update the README/RELEASE_NOTES with the new features/capabilities after I confirm what other open issues are fixed with this.
Yes, I'm done with updates unless any other issues surface.
Thanks @ghale for this great change. I appreciate the work that went into it. I plan to have this in the 3.0.0 release by the weekend if not sooner.
These changes make the Clover tasks compatible with the Gradle build cache. There are a few breaking changes, so this would probably require a major version bump. The following are the most impactful changes:
CloverSourceSet
to support this. Specifically,CloverSourceSet.classesDir
no longer represents both the original class dir and the instrumented class dir.classesDir
now represents the original (non-instrumented) class directory andCloverSourceSet.instrumentedClassesDir
represents the instrumented class directory.cloverInstrumentedJar
is set, any jar file that included the main sourceset output would automatically add the instrumented classes (because these classes overwrote the original class files). Now, we automatically configure thejar
task from the java plugin, but any other custom jar tasks would have to explicitly add the instrumented classes dir if they want them.build/reports/clover
while the merged aggregate reports now go intobuild/reports-all/clover
in the root project.build/.clover/clover.db-all
.