From 8ee94a439260d727b70c03026e491f231747f00b Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Fri, 30 May 2014 13:31:02 +0200 Subject: [PATCH] Eclipse project deps come after third-party libs Prior to this commit, the ordering of classpath entries in the generated Eclipse .classpath files did not align with the intended dependency management configured in the Gradle build. Specifically, project dependencies often came before dependencies on third-party libraries required for the given project, causing the project not to compile in Eclipse. This commit fixes this issue by introducing new functionality in the ide.gradle script that moves all project dependencies to the end of the generated classpath. Issue: SPR-11836 --- gradle/ide.gradle | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gradle/ide.gradle b/gradle/ide.gradle index 973f5f6d464..aaf6868933e 100644 --- a/gradle/ide.gradle +++ b/gradle/ide.gradle @@ -47,10 +47,21 @@ eclipse.classpath.file.whenMerged { classpath -> } } +// Ensure project dependencies come after 3rd-party libs (SPR-11836) +// https://jira.spring.io/browse/SPR-11836 +eclipse.classpath.file.whenMerged { classpath -> + def projectOutputDependencies = classpath.entries.findAll { entry -> entry instanceof ProjectDependency } + projectOutputDependencies.each { entry -> + // delete from original position + classpath.entries.remove(entry) + // append to end of classpath + classpath.entries.add(entry) + } +} + // Allow projects to be used as WPT modules eclipse.project.natures "org.eclipse.wst.common.project.facet.core.nature" - // Include project specific settings task eclipseSettings(type: Copy) { from rootProject.files(