blob: e89bdcfffb85337049eff0ff19e63ec5b664e376 [file] [log] [blame]
//most of this is just a "hack" to break the circular dependencies between projects
//which exist because Eclipse does not distinguish between build phases (e.g. compile, test, runtime)
allprojects {
apply plugin: 'eclipse'
eclipse.jdt {
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
eclipse.classpath.file {
whenMerged { classpath ->
classpath.entries.removeAll{ entry -> entry.path == '/groovy-groovydoc' }
classpath.entries.removeAll{ entry -> entry.path =~ /groovy-ant/ }
classpath.entries.removeAll{ entry -> entry.path =~ /target/ }
classpath.entries.unique(true){ entry -> entry.path }
}
withXml {
def node = it.asNode()
node.appendNode('classpathentry', [kind: 'lib', path: "${rootProject.jar.archivePath}"])
}
}
project.tasks.eclipse.doLast {
File groovyPrefs = file("${project.projectDir}/.settings/org.eclipse.jdt.groovy.core.prefs")
if (!groovyPrefs.exists()) {
groovyPrefs.append('groovy.compiler.level=-1\n')
}
}
}
eclipse.classpath.file {
whenMerged { classpath ->
classpath.entries.find { entry -> entry.path =~ /src\/main/ }.path = '/groovy/src/main'
classpath.entries.find { entry -> entry.path =~ /src\/main/ }.includes = []
classpath.entries.each { entry -> if(entry.path == 'src/test'){ entry.excludes = ['groovy/PropertyTest.groovy'] as List } }
classpath.entries.removeAll{ entry -> entry.path == '/groovy-test' }
classpath.entries.removeAll{ entry -> entry.path =~ /subprojects/ }
classpath.entries.removeAll{ entry -> entry.path =~ /examples/ }
}
withXml {
def node = it.asNode()
['groovy-test', 'groovy-groovydoc', 'groovy-jmx', 'groovy-xml', 'groovy-ant'].each{
node.appendNode('classpathentry', [kind: 'src', path: "/groovy/subprojects/$it/src/main/groovy"])
node.appendNode('classpathentry', [kind: 'src', path: "/groovy/subprojects/$it/src/main/java"])
}
node.appendNode('classpathentry', [kind: 'src', path: '/groovy/subprojects/groovy-templates/src/main/groovy'])
}
}