import org.gradle.plugins.ide.eclipse.model.SourceFolder apply plugin: 'eclipse-wtp' apply plugin: 'propdeps-idea' apply plugin: 'propdeps-eclipse' eclipse.classpath.downloadSources = true eclipse.project.buildCommand "net.sf.eclipsecs.core.CheckstyleBuilder" eclipse.project.natures "net.sf.eclipsecs.core.CheckstyleNature" // Include project specific settings task eclipseCheckstyle(type: Copy) { from rootProject.files( "etc/eclipse/.checkstyle") into project.projectDir expand(configDir: rootProject.file('etc/checkstyle').absolutePath) } task eclipseSettings(type: Copy) { from rootProject.files( "etc/eclipse/org.eclipse.jdt.ui.prefs", "etc/eclipse/org.eclipse.wst.common.project.facet.core.xml") into project.file('.settings/') outputs.upToDateWhen { false } } task eclipseWstComponent(type: Copy) { from rootProject.files( "etc/eclipse/org.eclipse.wst.common.component") into project.file('.settings/') expand(deployname: project.name) outputs.upToDateWhen { false } } task eclipseJdtPrepare(type: Copy) { from rootProject.file("etc/eclipse/org.eclipse.jdt.core.prefs") into project.file(".settings/") outputs.upToDateWhen { false } } task cleanEclipseJdtUi(type: Delete) { delete project.file(".settings/org.eclipse.jdt.core.prefs") delete project.file(".settings/org.eclipse.jdt.ui.prefs") delete project.file(".settings/org.eclipse.wst.common.component") delete project.file(".settings/org.eclipse.wst.common.project.facet.core.xml") } tasks["eclipseJdt"].dependsOn(eclipseJdtPrepare) tasks["cleanEclipse"].dependsOn(cleanEclipseJdtUi) tasks["eclipse"].dependsOn(eclipseCheckstyle, eclipseSettings, eclipseWstComponent) task eclipseConfiguration(dependsOn: [eclipseCheckstyle, eclipseSettings, eclipseWstComponent]) { } eclipse { classpath { plusConfigurations += [ configurations.integrationTestCompile ] } } // http://forums.gradle.org/gradle/topics/eclipse_wtp_deploys_testcode_to_server_example_provided eclipse.classpath { defaultOutputDir = file('bin/main') file.whenMerged { cp -> cp.entries.findAll { it instanceof SourceFolder && (it.path.contains("test") || it.path.contains("Test")) }*.output = "bin/test" } } // GRADLE-1116 project.eclipse.classpath.file.whenMerged { classpath -> classpath.entries.removeAll { entry -> entry.path.endsWith('/build/resources/test') } classpath.entries.removeAll { entry -> entry.path.endsWith('/build/classes/test') } classpath.entries.removeAll { entry -> entry.path.endsWith('/build/resources/main') } classpath.entries.removeAll { entry -> entry.path.endsWith('/build/classes/main') } } // 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) } } } } } project.idea.module { scopes.TEST.plus += [project.configurations.integrationTestRuntime] testSourceDirs += sourceSets.integrationTest.resources.srcDirs }