Skip to content

Commit

Permalink
make eclipse and idea classpath independent of plugin order
Browse files Browse the repository at this point in the history
  • Loading branch information
oehme committed Dec 15, 2015
1 parent 79c686b commit 1fc5608
Showing 1 changed file with 14 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import org.xtext.gradle.idea.tasks.IdeaExtension
import org.xtext.gradle.idea.tasks.RunIdea

import static extension org.xtext.gradle.idea.tasks.GradleExtensions.*
import org.gradle.api.plugins.JavaBasePlugin

class IdeaDevelopmentPlugin implements Plugin<Project> {
public static val IDEA_DEVELOPMENT_EXTENSION_NAME = "ideaDevelopment"
Expand Down Expand Up @@ -125,13 +126,15 @@ class IdeaDevelopmentPlugin implements Plugin<Project> {
}

private def integrateWithJavaPlugin(Project project) {
project.plugins.withType(JavaPlugin) [
project.plugins.withType(JavaBasePlugin) [
java = project.convention.getPlugin(JavaPluginConvention)
filterKnownIdeaJarsFromCompileClasspath(project)
addIdeaProvidedDependencies(project)
adjustTestEnvironment(project)
addIdeaDependenciesToEclipseClasspath(project)
addIdeaDependenciesToIntelliJClasspath(project)
project.plugins.withType(JavaPlugin) [
addIdeaProvidedDependencies(project)
addIdeaDependenciesToEclipseClasspath(project)
addIdeaDependenciesToIntelliJClasspath(project)
adjustTestEnvironment(project)
filterKnownIdeaJarsFromCompileClasspath(project)
]
]
}

Expand All @@ -150,12 +153,12 @@ class IdeaDevelopmentPlugin implements Plugin<Project> {
idea.ideaLibs.forEach[
project.dependencies.add(ideaProvided.name, it)
]
java.sourceSets.all [
compileClasspath = compileClasspath.plus(ideaProvided)
runtimeClasspath = runtimeClasspath.plus(idea.ideaRunClasspath)
]
]

java.sourceSets.all [
compileClasspath = compileClasspath.plus(ideaProvided)
runtimeClasspath = runtimeClasspath.plus(ideaProvided).plus(idea.toolsJar)
]
}

private def adjustTestEnvironment(Project project) {
Expand All @@ -175,7 +178,7 @@ class IdeaDevelopmentPlugin implements Plugin<Project> {
eclipseClasspath.dependsOn(idea.downloadIdea, idea.downloadPlugins)
project.extensions.getByType(EclipseModel).classpath => [
plusConfigurations.add(ideaProvided)

val fileReferenceFactory = new FileReferenceFactory
file.whenMerged.add [ Classpath it |
entries.filter(Library).filter[idea.ideaCoreLibs.contains(library.file)].forEach [
Expand Down

0 comments on commit 1fc5608

Please sign in to comment.