Use separate output directories for all JVM languages - Introduce an outputDir on SourceDirectorySet - Default output directory is now `build/classes/<source directory set name>/<source set name>` - Example: Java compilation goes to build/classes/java/main instead of build/classes/main - Adapt JDepend, FindBugs, Test and ValidateTaskProperties tasks to handle multiple class directories - Deprecate setClassesDir/getClassesDir on SourceSetOutput - Calling setClassesDir restores old behavior (shared output directory) - Introduce addClassesDir and getClassesDirs on SourceSetOutput - OSGi plugin needs a single classes directory, so introduce 'osgiClasses' task that syncs all classes to a single directory
Most of the changes to integration tests are find classes in their new location. Helper methods in AbstractIntegrationSpec can locate class files vs hardcoding a path.
Squashed commit of sg-split-jvm-classes branch for REVIEW-6502
Track java version when using forked compilation We introduce a new property on ForkOptions to track the Java home which contains javac. By doing so, we are able to track the Java version for forked compilation, too.