Browse Source

Re-enable import into Eclipse IDE

The migration to Gradle 7.2 resulted in a regression for our Eclipse
IDE support: several projects ended up with recursive classpath entries
in their generated .classpath files which prevent those projects from
being built within Eclipse.

This commit addresses this issue with a solution that may well be a
"hack". Nonetheless, a working hack is better than not being able to
import into Eclipse at all.

See gh-26870
pull/27415/head
Sam Brannen 4 years ago
parent
commit
3faf445603
  1. 11
      gradle/ide.gradle

11
gradle/ide.gradle

@ -18,10 +18,13 @@ eclipse.classpath.file.whenMerged { classpath -> @@ -18,10 +18,13 @@ eclipse.classpath.file.whenMerged { classpath ->
if (matcher) {
def projectName = matcher[0][1]
def path = "/${projectName}"
if(!classpath.entries.find { e -> e instanceof ProjectDependency && e.path == path }) {
def dependency = new ProjectDependency(path)
dependency.exported = true
classpath.entries.add(dependency)
if (!classpath.entries.find { e -> e instanceof ProjectDependency && e.path == path }) {
// Avoid recursive dependency on current project.
if (!entry.path.matches('.+/' + projectName + '/build/([^/]+/)+(?:main|test)')) {
def dependency = new ProjectDependency(path)
dependency.exported = true
classpath.entries.add(dependency)
}
}
classpath.entries.remove(entry)
}

Loading…
Cancel
Save