Class EclipseClasspath

java.lang.Object
org.gradle.plugins.ide.eclipse.model.EclipseClasspath

public class EclipseClasspath extends Object
The build path settings for the generated Eclipse project. Used by the GenerateEclipseClasspath task to generate an Eclipse .classpath file.

The following example demonstrates the various configuration options. Keep in mind that all properties have sensible defaults; only configure them explicitly if the defaults don't match your needs.

 apply plugin: 'java'
 apply plugin: 'eclipse'

 configurations {
   provided
   someBoringConfig
 }

 eclipse {
   //if you want parts of paths in resulting file to be replaced by variables (files):
   pathVariables 'GRADLE_HOME': file('/best/software/gradle'), 'TOMCAT_HOME': file('../tomcat')

   classpath {
     //you can tweak the classpath of the Eclipse project by adding extra configurations:
     plusConfigurations += [ configurations.provided ]

     //you can also remove configurations from the classpath:
     minusConfigurations += [ configurations.someBoringConfig ]

     //if you want to append extra containers:
     containers 'someFriendlyContainer', 'andYetAnotherContainer'

     //customizing the classes output directory:
     defaultOutputDir = file('build-eclipse')

     //default settings for downloading sources and Javadoc:
     downloadSources = true
     downloadJavadoc = false
   }
 }
 
For tackling edge cases, users can perform advanced configuration on the resulting XML file. It is also possible to affect the way that the Eclipse plugin merges the existing configuration via beforeMerged and whenMerged closures.

The beforeMerged and whenMerged closures receive a Classpath object.

Examples of advanced configuration:

 apply plugin: 'java'
 apply plugin: 'eclipse'

 eclipse {
   classpath {
     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 .classpath content is loaded from existing file
       //but before gradle build information is merged
       beforeMerged { classpath ->
         //you can tinker with the Classpath here
       }

       //closure executed after .classpath content is loaded from existing file
       //and after gradle build information is merged
       whenMerged { classpath ->
         //you can tinker with the Classpath here
       }
     }
   }
 }
 
  • Constructor Details

    • EclipseClasspath

      public EclipseClasspath(Project project)
  • Method Details

    • getSourceSets

      public Iterable<SourceSet> getSourceSets()
      The source sets to be added.

      See EclipseClasspath for an example.

    • setSourceSets

      public void setSourceSets(Iterable<SourceSet> sourceSets)
    • getPlusConfigurations

      public Collection<Configuration> getPlusConfigurations()
      The configurations whose files are to be added as classpath entries.

      See EclipseClasspath for an example.

    • setPlusConfigurations

      public void setPlusConfigurations(Collection<Configuration> plusConfigurations)
    • getMinusConfigurations

      public Collection<Configuration> getMinusConfigurations()
      The configurations whose files are to be excluded from the classpath entries.

      See EclipseClasspath for an example.

    • setMinusConfigurations

      public void setMinusConfigurations(Collection<Configuration> minusConfigurations)
    • getContainers

      public Set<String> getContainers()
      The classpath containers to be added.

      See EclipseClasspath for an example.

    • setContainers

      public void setContainers(Set<String> containers)
    • getDefaultOutputDir

      public File getDefaultOutputDir()
      The default output directory where Eclipse puts compiled classes.

      See EclipseClasspath for an example.

    • setDefaultOutputDir

      public void setDefaultOutputDir(File defaultOutputDir)
    • isDownloadSources

      public boolean isDownloadSources()
      Whether to download and associate source Jars with the dependency Jars. Defaults to true.

      See EclipseClasspath for an example.

    • setDownloadSources

      public void setDownloadSources(boolean downloadSources)
    • isDownloadJavadoc

      public boolean isDownloadJavadoc()
      Whether to download and associate Javadoc Jars with the dependency Jars. Defaults to false.

      See EclipseClasspath for an example.

    • setDownloadJavadoc

      public void setDownloadJavadoc(boolean downloadJavadoc)
    • getFile

      public XmlFileContentMerger getFile()
    • setFile

      public void setFile(XmlFileContentMerger file)
    • getPathVariables

      public Map<String,File> getPathVariables()
    • setPathVariables

      public void setPathVariables(Map<String,File> pathVariables)
    • isProjectDependenciesOnly

      public boolean isProjectDependenciesOnly()
    • setProjectDependenciesOnly

      public void setProjectDependenciesOnly(boolean projectDependenciesOnly)
    • getClassFolders

      public List<File> getClassFolders()
    • setClassFolders

      public void setClassFolders(List<File> classFolders)
    • getProject

      public Project getProject()
    • containers

      public void containers(String... containers)
      Further classpath containers to be added.

      See EclipseClasspath for an example.

      Parameters:
      containers - the classpath containers to be added
    • file

      public void file(Closure closure)
      Enables advanced configuration like tinkering with the output XML or affecting the way that the contents of an existing .classpath file is merged with Gradle build information. The object passed to the whenMerged{} and beforeMerged{} closures is of type Classpath.

      See EclipseProject for an example.

    • file

      public void file(Action<? super XmlFileContentMerger> action)
      Enables advanced configuration like tinkering with the output XML or affecting the way that the contents of an existing .classpath file is merged with Gradle build information. The object passed to the whenMerged{} and beforeMerged{} closures is of type Classpath.

      See EclipseProject for an example.

      Since:
      3.5
    • resolveDependencies

      public List<ClasspathEntry> resolveDependencies()
      Calculates, resolves and returns dependency entries of this classpath.
    • mergeXmlClasspath

      public void mergeXmlClasspath(Classpath xmlClasspath)
    • getFileReferenceFactory

      public org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory getFileReferenceFactory()