From 8978a3af3d4a52f728bf9c33a4528d192aacff27 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Mon, 7 Mar 2011 21:11:23 -0600 Subject: [PATCH] Updated gradle build to workaround GRADLE-1426 - configure Eclipse WTP correctly to include dependencies that were on the WAR when there are no source folders for the WAR. --- build.gradle | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 201db9dacf..247012bfec 100644 --- a/build.gradle +++ b/build.gradle @@ -77,12 +77,31 @@ configure(javaProjects) { eclipseClasspath.whenConfigured { classpath -> classpath.entries.removeAll { entry -> entry.path.endsWith('/build/classes/test') } } - // GRADLE-1422 eclipseClasspath.doFirst { eclipseClasspath.whenConfigured { classpath -> def includeDeps = project.configurations.getByName('runtime')?.collect { f-> f.absolutePath } as Set - classpath.entries.findAll { it instanceof org.gradle.plugins.eclipse.model.Library && !includeDeps.contains(it.path) }.each { - it.entryAttributes.remove('org.eclipse.jst.component.dependency') + classpath.entries.each { cp -> + if(cp instanceof org.gradle.plugins.eclipse.model.Library) { + def include = includeDeps.contains(cp.path) + def attr = 'org.eclipse.jst.component.dependency' + if(include && project.hasProperty('war')) { + // GRADLE-1426 (part a) + cp.entryAttributes.put(attr,'/WEB-INF/lib') + } else if(!include) { + // GRADLE-1422 + cp.entryAttributes.remove(attr) + } + } + } + } + } + // GRADLE-1426 (part b) + project.plugins.withType(org.gradle.api.plugins.WarPlugin.class).all { + eclipseWtpComponent.whenConfigured { wtpComp -> + wtpComp.wbModuleEntries.findAll { it instanceof org.gradle.plugins.eclipse.model.WbDependentModule }.each { e -> + if(!e.handle.startsWith('module:/resource/')) { + wtpComp.wbModuleEntries.remove(e) + } } } }