| /* |
| * 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. |
| */ |
| allprojects { |
| apply plugin: 'eclipse' |
| |
| eclipse.classpath.file.whenMerged { |
| entries.removeAll { entry -> entry.path =~ '/target/' } // affects: cli-commons, cli-picocli, console, groovydoc, macro, servlet, swing, templates, xml |
| entries.unique(true) { entry -> entry.path } // affects: console, groovydoc, macro, servlet, swing, templates, xml |
| entries.sort(true) { entry -> |
| if (entry.class.simpleName != 'SourceFolder') { |
| "${entry.kind}:${entry.path.split('/')[-1].toLowerCase()}" |
| } else { |
| "${entry.kind}:${entry.path}" |
| } |
| } |
| |
| // set "test" attribute based on gradle scopes |
| entries.findAll { entry -> |
| entry.class.name in [ |
| 'org.gradle.plugins.ide.eclipse.model.Library', |
| 'org.gradle.plugins.ide.eclipse.model.SourceFolder' |
| ] |
| }.each { entry -> |
| if (entry.entryAttributes['gradle_used_by_scope'] == 'test') { |
| entry.entryAttributes['test'] = 'true' |
| } |
| } |
| // set "test" attribute based on configuration |
| entries.findAll { entry -> |
| entry.class.name in [ |
| 'org.gradle.plugins.ide.eclipse.model.ProjectDependency' |
| ] |
| }.each { entry -> |
| if (entry.path.substring(1) in project.configurations.testImplementation.dependencies*.name) { |
| entry.entryAttributes['test'] = 'true' |
| } |
| } |
| } |
| |
| project.tasks.eclipse.doLast { |
| file("${project.projectDir}/.settings/org.eclipse.jdt.groovy.core.prefs").with { prefs -> |
| if (!prefs.exists()) { |
| append('''\ |
| eclipse.preferences.version=1 |
| groovy.compiler.level=30 |
| groovy.script.filters=**/*.gradle,n,**/script*.groovy,y,**/*resources/**/*.groovy,y,**/benchmarks/**/*.groovy,y |
| org.codehaus.groovy.eclipse.preferences.compiler.project=true |
| '''.stripIndent() |
| ) |
| } |
| } |
| |
| file("${project.projectDir}/.settings/org.eclipse.core.resources.prefs").with { prefs -> |
| if (!prefs.exists()) { |
| append('''\ |
| eclipse.preferences.version=1 |
| encoding/<project>=UTF-8 |
| '''.stripIndent() |
| ) |
| } |
| } |
| |
| file("${project.projectDir}/.settings/org.eclipse.core.runtime.prefs").with { prefs -> |
| if (!prefs.exists()) { |
| append('''\ |
| eclipse.preferences.version=1 |
| line.separator=\\n |
| '''.stripIndent() |
| ) |
| } |
| } |
| |
| file("${project.projectDir}/.settings/org.eclipse.jdt.ui.prefs").with { prefs -> |
| if (!prefs.exists()) { |
| append('''\ |
| eclipse.preferences.version=1 |
| editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true |
| org.eclipse.jdt.ui.ignorelowercasenames=true |
| org.eclipse.jdt.ui.importorder=;javax;java;\\#; |
| org.eclipse.jdt.ui.ondemandthreshold=99 |
| org.eclipse.jdt.ui.staticondemandthreshold=99 |
| sp_cleanup.on_save_use_additional_actions=true |
| sp_cleanup.organize_imports=true |
| sp_cleanup.remove_trailing_whitespaces=true |
| sp_cleanup.remove_trailing_whitespaces_all=true |
| sp_cleanup.remove_trailing_whitespaces_ignore_empty=false |
| sp_cleanup.update_copyright_notice=true |
| '''.stripIndent() |
| ) |
| } |
| } |
| } |
| |
| // tasks for cleaning the .settings files created above |
| |
| task cleanEclipseGdt(type: Delete) { |
| delete "${project.projectDir}/.settings/org.eclipse.jdt.groovy.core.prefs" |
| } |
| cleanEclipse.dependsOn(cleanEclipseGdt) |
| |
| task cleanEclipseJdtUI(type: Delete) { |
| delete "${project.projectDir}/.settings/org.eclipse.jdt.ui.prefs" |
| } |
| cleanEclipse.dependsOn(cleanEclipseJdtUI) |
| |
| project.tasks.cleanEclipse.doLast { |
| file("${project.projectDir}/.settings/org.eclipse.core.resources.prefs").delete() |
| file("${project.projectDir}/.settings/org.eclipse.core.runtime.prefs").delete() |
| file("${project.projectDir}/.settings/").with { if (!listFiles()) delete() } |
| } |
| } |
| |
| eclipse.classpath.file.whenMerged { |
| entries.removeAll { entry -> entry.path == '/groovy-groovydoc' } |
| |
| entries.findAll { entry -> entry.path =~ '^target/generated/sources/antlr' }.each { entry -> |
| entry.entryAttributes['ignore_optional_problems'] = 'true' |
| entry.entryAttributes['optional'] = 'true' |
| } |
| } |