sourceSets.configureEach { sourceSet -> tasks.named(sourceSet.compileJavaTaskName).configure { options.generatedSourceOutputDirectory = file("$buildDir/generated/source/apt/${sourceSet.name}") } } idea { module { sourceDirs += compileJava.options.generatedSourceOutputDirectory generatedSourceDirs += compileJava.options.generatedSourceOutputDirectory testSourceDirs += compileTestJava.options.generatedSourceOutputDirectory generatedSourceDirs += compileTestJava.options.generatedSourceOutputDirectory } }