configure(allprojects) { apply plugin: 'idea' apply plugin: 'eclipse-wtp' eclipse.project.name = "${project.name}-3.2.x" } configure(javaProjects) { eclipse.classpath.downloadSources = true // GRADLE-1116 project.eclipse.classpath.file.whenMerged { classpath -> classpath.entries.removeAll { entry -> entry.path.endsWith('/build/classes/test') } } // GRADLE-1422 project.eclipseClasspath.doFirst { // delay adding whenMerged till the entryAttributes are added (must be the last whenMerged) project.eclipse.classpath.file.whenMerged { classpath -> def includeDeps = project.configurations.getByName('runtime').collect {f -> f.absolutePath } as Set classpath.entries.each { cp -> if(cp instanceof org.gradle.plugins.ide.eclipse.model.Library) { def include = includeDeps.contains(cp.path) def attr = 'org.eclipse.jst.component.dependency' if(!include) { cp.entryAttributes.remove(attr) } } } } } tasks.withType(org.gradle.plugins.ide.eclipse.GenerateEclipseWtpComponent) { project.eclipse.classpath.file.whenMerged { classpath-> project.eclipse.wtp.component.file.whenMerged { wtpComponent -> wtpComponent.contextPath = project.tasks.findByName('jettyRun')?.contextPath?.replaceFirst('/','') } } } } // STS-3057 configure(allprojects) { task afterEclipseImport { ext.srcFile = file('.classpath') inputs.file srcFile outputs.dir srcFile onlyIf { srcFile.exists() } doLast { def classpath = new XmlParser().parse(srcFile) classpath.classpathentry.findAll{ it.@path == 'GROOVY_SUPPORT' }.each { classpath.remove(it) } def writer = new FileWriter(srcFile) new XmlNodePrinter(new PrintWriter(writer)).print(classpath) } } } // STS-2723 project(':spring-security-samples-aspectj') { task afterEclipseImportAjdtFix { ext.srcFile = afterEclipseImport.srcFile inputs.file srcFile outputs.dir srcFile onlyIf { srcFile.exists() } doLast { def classpath = new XmlParser().parse(srcFile) classpath.classpathentry.findAll{ it.@path.startsWith('/spring-security-aspects') }.each { node -> if(node.children().size() == 0) { def attrs = new Node(node,'attributes') def adjtAttr = new Node(attrs,'attributes',[name: 'org.eclipse.ajdt.aspectpath', value: 'org.eclipse.ajdt.aspectpath']) node.appendNode(adjtAttr) } } def writer = new FileWriter(srcFile) new XmlNodePrinter(new PrintWriter(writer)).print(classpath) } } afterEclipseImport.dependsOn afterEclipseImportAjdtFix }