From 2558cc3c1b2c5d7e596a65d0020790ea0995f6bf Mon Sep 17 00:00:00 2001 From: Chris Purcell Date: Thu, 2 Feb 2017 17:44:57 +0000 Subject: [PATCH] Default Eclipse to write to generated/java, not bin/generated/java Despite the sanity of outputting generated source into the "default output directory", apparently Eclipse refuses to compile with that setting. Output to generated/java instead. We used to output to generated_src, same as gradle build, but there are adverse side-effects when the two processes share the same output location. --- .../inferred/gradle/ProcessorsPlugin.groovy | 2 +- .../ProcessorsPluginFunctionalTest.groovy | 43 +------------------ 2 files changed, 2 insertions(+), 43 deletions(-) diff --git a/src/main/groovy/org/inferred/gradle/ProcessorsPlugin.groovy b/src/main/groovy/org/inferred/gradle/ProcessorsPlugin.groovy index 812c0da8..df50bbf7 100644 --- a/src/main/groovy/org/inferred/gradle/ProcessorsPlugin.groovy +++ b/src/main/groovy/org/inferred/gradle/ProcessorsPlugin.groovy @@ -45,7 +45,7 @@ class ProcessorsPlugin implements Plugin { project.eclipse { extensions.create('processors', EclipseProcessorsExtension) processors.conventionMapping.outputDir = { - new File(project.eclipse.classpath.defaultOutputDir, 'generated/java') + project.file('generated/java') } classpath.plusConfigurations += [project.configurations.processor] diff --git a/src/test/groovy/org/inferred/gradle/ProcessorsPluginFunctionalTest.groovy b/src/test/groovy/org/inferred/gradle/ProcessorsPluginFunctionalTest.groovy index e9998cb8..2a87dc45 100644 --- a/src/test/groovy/org/inferred/gradle/ProcessorsPluginFunctionalTest.groovy +++ b/src/test/groovy/org/inferred/gradle/ProcessorsPluginFunctionalTest.groovy @@ -276,48 +276,7 @@ public class ProcessorsPluginFunctionalTest { def expected = """ eclipse.preferences.version=1 org.eclipse.jdt.apt.aptEnabled=true - org.eclipse.jdt.apt.genSrcDir=bin/generated/java - org.eclipse.jdt.apt.reconcileEnabled=true - """.replaceFirst('\n','').stripIndent() - assertEquals(expected, prefsFile.text) - } - - @Test - public void testEclipseAptPrefsUsesDefaultOutputDir() throws IOException { - buildFile << """ - apply plugin: 'java' - apply plugin: 'eclipse' - apply plugin: 'org.inferred.processors' - - dependencies { - processor 'org.immutables:value:2.0.21' - } - - eclipse.classpath.defaultOutputDir = file('something') - """ - - new File(testProjectDir.newFolder('src', 'main', 'java'), 'MyClass.java') << """ - import org.immutables.value.Value; - - @Value.Immutable - public interface MyClass { - @Value.Parameter String getValue(); - } - """ - - File testProjectDirRoot = testProjectDir.getRoot() - - GradleRunner.create() - .withProjectDir(testProjectDirRoot) - .withArguments("eclipseAptPrefs") - .build() - - def prefsFile = new File(testProjectDirRoot, ".settings/org.eclipse.jdt.apt.core.prefs") - - def expected = """ - eclipse.preferences.version=1 - org.eclipse.jdt.apt.aptEnabled=true - org.eclipse.jdt.apt.genSrcDir=something/generated/java + org.eclipse.jdt.apt.genSrcDir=generated/java org.eclipse.jdt.apt.reconcileEnabled=true """.replaceFirst('\n','').stripIndent() assertEquals(expected, prefsFile.text)