project.buildDir and eclipse.classpath.defaultOutputDir are inconsistent by default, which cause confusion for beginners

Hi Nick,

using a different classes output directory for Eclipse was a deliberate decision, because Eclipse uses a different compiler than Gradle. Letting both write to the same directory would lead to both being constantly out of date.

You can register a custom source folder for your generated resources. This will work equally well for Gradle and Eclipse.


def generatedResources = "$buildDir/generated-resources/main"

task generateMyResources {
  doLast {
    def properties = new File(generatedResources, "myGeneratedResource.properties")
    properties.parentFile.mkdirs()
    properties.text = "message=Stay happy!"
  }
}

sourceSets.main.resources.srcDir generatedResources //Eclipse will pick it up as a source folder
processResources.dependsOn(generateMyResources)

Cheers,
Stefan