blob: 559004b41c44359b64ed518c8760c13f803649d9 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
//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'])
}
}