CompileTestJava is executed when resource in main source set is modified

Hi,

we observed that if we change a resource file inside the main source set the compileTestJava is executed. Shouldn’t this task be up to date?

:edoras-bpm-execution-core:compileJava UP-TO-DATE
:edoras-bpm-execution-core:processResources
:edoras-bpm-execution-core:classes
:edoras-bpm-execution-core:jar
:edoras-bpm-execution-core:zipDependencies UP-TO-DATE
:edoras-bpm-execution-core:assemble
:edoras-bpm-execution-core:compileApiJava UP-TO-DATE
:edoras-bpm-execution-core:processApiResources UP-TO-DATE
:edoras-bpm-execution-core:apiClasses UP-TO-DATE
:edoras-bpm-execution-core:checkstyleApi UP-TO-DATE
:edoras-bpm-execution-core:checkstyleMain
:edoras-bpm-execution-core:compileTestJava
:edoras-bpm-execution-core:processTestResources UP-TO-DATE
:edoras-bpm-execution-core:testClasses
:edoras-bpm-execution-core:checkstyleTest UP-TO-DATE
:edoras-bpm-execution-core:test

Thanks

Hello guy, this is intended behavior. Resource files are part of your classpath and the compileTestJava task is executed again if its classpath changed. For example, imagine you have simple spring bean definitions stored as xml resources you want to reuse in your tests. I’m sure you want to run your tests again after you have changed the bean definitions.

regards, René

We surely want to rerun the tests when the production resources change, but why recompile the Java test files? Compilation of Java test sources is not affected by changed production resources.

Hi etienne, you’re right. There was a misunderstanding on my site. Executing tests again is intended, but recompiling the tests seems redundant here. Technically spoken, the reason for recompiling the test classes is, that the classpath of the tests has changed and gradle does not (yet) differ if classes or resources have changed. We might create an issue for this.

You can track this issue now at http://issues.gradle.org/browse/GRADLE-2192

Hi Rene, thanks for the issue. It would be great to have this optimization in our builds.