Eclipse
    Enables fine-tuning project details (.project file) of the Eclipse plugin
Example of use with a blend of all possible properties. Bear in mind that usually you don't have configure eclipse project directly because Gradle configures it for free!
plugins {
    id 'java'
    id 'eclipse'
}
eclipse {
  project {
    //if you don't like the name Gradle has chosen
    name = 'someBetterName'
    //if you want to specify the Eclipse project's comment
    comment = 'Very interesting top secret project'
    //if you want to append some extra referenced projects in a declarative fashion:
    referencedProjects 'someProject', 'someOtherProject'
    //if you want to assign referenced projects
    referencedProjects = ['someProject'] as Set
    //if you want to append some extra natures in a declarative fashion:
    natures 'some.extra.eclipse.nature', 'some.another.interesting.nature'
    //if you want to assign natures in a groovy fashion:
    natures = ['some.extra.eclipse.nature', 'some.another.interesting.nature']
    //if you want to append some extra build command:
    buildCommand 'buildThisLovelyProject'
    //if you want to append a build command with parameters:
    buildCommand 'buildItWithTheArguments', argumentOne: "I'm first", argumentTwo: "I'm second"
    //if you want to create an extra link in the eclipse project,
    //by location uri:
    linkedResource name: 'someLinkByLocationUri', type: 'someLinkType', locationUri: 'file://someUri'
    //by location:
    linkedResource name: 'someLinkByLocation', type: 'someLinkType', location: '/some/location'
    //if you don't want any node_modules folder to appear in Eclipse, you can filter it out:
    resourceFilter {
      appliesTo = 'FOLDERS'
      type = 'EXCLUDE_ALL'
      matcher {
        id = 'org.eclipse.ui.ide.multiFilter'
        arguments = '1.0-name-matches-false-false-node_modules'
      }
    }
  }
}
Content copied to clipboard
beforeMerged and whenMerged closures receive Project object
Examples of advanced configuration:
plugins {
    id 'java'
    id 'eclipse'
}
eclipse {
  project {
    file {
      //if you want to mess with the resulting XML in whatever way you fancy
      withXml {
        def node = it.asNode()
        node.appendNode('xml', 'is what I love')
      }
      //closure executed after .project content is loaded from existing file
      //but before gradle build information is merged
      beforeMerged { project ->
        //if you want skip merging natures... (a very abstract example)
        project.natures.clear()
      }
      //closure executed after .project content is loaded from existing file
      //and after gradle build information is merged
      whenMerged { project ->
        //you can tinker with the Project here
      }
    }
  }
}
Content copied to clipboard
Properties
Functions
Link copied to clipboard
                  Adds a build command to the eclipse project.
Adds a build command with arguments to the eclipse project.
Link copied to clipboard
                  Enables advanced configuration like tinkering with the output XML or affecting the way existing .
Enables advanced configuration like tinkering with the output XML or affecting the way existing .project content is merged with gradle build information.
Link copied to clipboard
                  Adds a resource link (aka 'source link') to the eclipse project.
Link copied to clipboard
                  Link copied to clipboard
                  The referenced projects of this Eclipse project (*not*: java build path project references).
Link copied to clipboard
                  open fun resourceFilter(@DelegatesTo(value = ResourceFilter::class, 
Adds a resource filter to the eclipse project.