From 4bfd299c3f86817d0f497320824b59db26075557 Mon Sep 17 00:00:00 2001 From: mfuerstenau Date: Fri, 27 May 2016 01:23:49 +0200 Subject: [PATCH] * add builtBy to compileBuildConfig task output, make compileBuildConfig task dependend on eclipse task --- .../gradle/buildconfig/BuildConfigPlugin.groovy | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/groovy/de/fuerstenau/gradle/buildconfig/BuildConfigPlugin.groovy b/src/main/groovy/de/fuerstenau/gradle/buildconfig/BuildConfigPlugin.groovy index c09c7ed..37b0c81 100755 --- a/src/main/groovy/de/fuerstenau/gradle/buildconfig/BuildConfigPlugin.groovy +++ b/src/main/groovy/de/fuerstenau/gradle/buildconfig/BuildConfigPlugin.groovy @@ -26,7 +26,9 @@ package de.fuerstenau.gradle.buildconfig import org.gradle.api.GradleException import org.gradle.api.Plugin import org.gradle.api.Project +import org.gradle.api.Task import org.gradle.api.UnknownDomainObjectException +import org.gradle.api.UnknownTaskException import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.UnknownConfigurationException @@ -37,6 +39,7 @@ import org.gradle.api.tasks.TaskCollection import org.gradle.api.tasks.compile.JavaCompile import org.slf4j.Logger import org.slf4j.LoggerFactory +import org.gradle.plugins.ide.eclipse.EclipsePlugin /** * @author Malte Fürstenau @@ -157,8 +160,20 @@ class BuildConfigPlugin implements Plugin LOG.info ("Created compiling task <{}> for sourceSet <{}>", compile.name, cfg.name) + if (p.plugins.hasPlugin ('org.gradle.eclipse')) + { + LOG.debug ('Eclipse plugin is found. Make compile dependend on eclipse task.') + try { + compile.dependsOn 'eclipseClasspath' + } catch (UnknownTaskException ex) { + LOG.warn ('Probed for eclipse task but none is defined even though EclipsePlugin is found.') + } + } + /* workaround for Eclipse, running eclipse task after will add this to classpath */ + def compiledClasses = p.files compile.outputs.files + compiledClasses.builtBy compile.name /* add dependency for sourceset compile configturation */ - compileCfg.dependencies.add (p.dependencies.create (compile.outputs.files)) + compileCfg.dependencies.add (p.dependencies.create (compiledClasses)) LOG.info ("Added task <{}> output files as dependency for configuration <{}>", compile.name, compileCfg.name) }