public abstract class EclipseClasspath
extends java.lang.Object
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.
plugins { id 'java' id '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 //if you want to expose test classes to dependent projects containsTestFixtures = true //customizing which Eclipse source directories should be marked as test testSourceSets = [sourceSets.test] //customizing which dependencies should be marked as test on the project's classpath testConfigurations = [configurations.testCompileClasspath, configurations.testRuntimeClasspath] } }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:
plugins { id 'java' id '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 theClasspath
here } //closure executed after .classpath content is loaded from existing file //and after gradle build information is merged whenMerged { classpath -> //you can tinker with theClasspath
here } } } }
Constructor | Description |
---|---|
EclipseClasspath(Project project) |
Modifier and Type | Method | Description |
---|---|---|
void |
containers(java.lang.String... containers) |
Further classpath containers to be added.
|
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.
|
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.
|
java.util.List<java.io.File> |
getClassFolders() |
|
java.util.Set<java.lang.String> |
getContainers() |
The classpath containers to be added.
|
Property<java.lang.Boolean> |
getContainsTestFixtures() |
Returns
true if the classpath contains test fixture classes that should be visible
through incoming project dependencies. |
java.io.File |
getDefaultOutputDir() |
The default output directory where Eclipse puts compiled classes.
|
XmlFileContentMerger |
getFile() |
See
file(Action) . |
org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory |
getFileReferenceFactory() |
|
java.util.Collection<Configuration> |
getMinusConfigurations() |
The configurations whose files are to be excluded from the classpath entries.
|
java.util.Map<java.lang.String,java.io.File> |
getPathVariables() |
|
java.util.Collection<Configuration> |
getPlusConfigurations() |
The configurations whose files are to be added as classpath entries.
|
Project |
getProject() |
|
java.lang.Iterable<SourceSet> |
getSourceSets() |
The source sets to be added.
|
SetProperty<Configuration> |
getTestConfigurations() |
Returns the test configurations.
|
SetProperty<SourceSet> |
getTestSourceSets() |
Returns the test source sets.
|
boolean |
isDownloadJavadoc() |
Whether to download and associate Javadoc Jars with the dependency Jars.
|
boolean |
isDownloadSources() |
Whether to download and associate source Jars with the dependency Jars.
|
boolean |
isProjectDependenciesOnly() |
|
void |
mergeXmlClasspath(Classpath xmlClasspath) |
|
java.util.List<ClasspathEntry> |
resolveDependencies() |
Calculates, resolves and returns dependency entries of this classpath.
|
void |
setClassFolders(java.util.List<java.io.File> classFolders) |
|
void |
setContainers(java.util.Set<java.lang.String> containers) |
|
void |
setDefaultOutputDir(java.io.File defaultOutputDir) |
|
void |
setDownloadJavadoc(boolean downloadJavadoc) |
|
void |
setDownloadSources(boolean downloadSources) |
|
void |
setFile(XmlFileContentMerger file) |
|
void |
setMinusConfigurations(java.util.Collection<Configuration> minusConfigurations) |
|
void |
setPathVariables(java.util.Map<java.lang.String,java.io.File> pathVariables) |
|
void |
setPlusConfigurations(java.util.Collection<Configuration> plusConfigurations) |
|
void |
setProjectDependenciesOnly(boolean projectDependenciesOnly) |
|
void |
setSourceSets(java.lang.Iterable<SourceSet> sourceSets) |
@Inject public EclipseClasspath(Project project)
public java.lang.Iterable<SourceSet> getSourceSets()
See EclipseClasspath
for an example.
public void setSourceSets(java.lang.Iterable<SourceSet> sourceSets)
public java.util.Collection<Configuration> getPlusConfigurations()
See EclipseClasspath
for an example.
public void setPlusConfigurations(java.util.Collection<Configuration> plusConfigurations)
public java.util.Collection<Configuration> getMinusConfigurations()
See EclipseClasspath
for an example.
public void setMinusConfigurations(java.util.Collection<Configuration> minusConfigurations)
public java.util.Set<java.lang.String> getContainers()
See EclipseClasspath
for an example.
public void setContainers(java.util.Set<java.lang.String> containers)
public java.io.File getDefaultOutputDir()
See EclipseClasspath
for an example.
public void setDefaultOutputDir(java.io.File defaultOutputDir)
public boolean isDownloadSources()
See EclipseClasspath
for an example.
public void setDownloadSources(boolean downloadSources)
public boolean isDownloadJavadoc()
See EclipseClasspath
for an example.
public void setDownloadJavadoc(boolean downloadJavadoc)
public XmlFileContentMerger getFile()
file(Action)
.public void setFile(XmlFileContentMerger file)
public java.util.Map<java.lang.String,java.io.File> getPathVariables()
public void setPathVariables(java.util.Map<java.lang.String,java.io.File> pathVariables)
public boolean isProjectDependenciesOnly()
public void setProjectDependenciesOnly(boolean projectDependenciesOnly)
public java.util.List<java.io.File> getClassFolders()
public void setClassFolders(java.util.List<java.io.File> classFolders)
public Project getProject()
public void containers(java.lang.String... containers)
See EclipseClasspath
for an example.
containers
- the classpath containers to be addedpublic void file(@DelegatesTo(XmlFileContentMerger.class) Closure closure)
Classpath
.
See EclipseProject
for an example.
public void file(Action<? super XmlFileContentMerger> action)
Classpath
.
See EclipseProject
for an example.
public java.util.List<ClasspathEntry> resolveDependencies()
public void mergeXmlClasspath(Classpath xmlClasspath)
public org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory getFileReferenceFactory()
public Property<java.lang.Boolean> getContainsTestFixtures()
true
if the classpath contains test fixture classes that should be visible
through incoming project dependencies.@Incubating public SetProperty<SourceSet> getTestSourceSets()
The source directories in the returned source sets are marked with the 'test' classpath attribute on the Eclipse classpath.
The default value contains the following elements:
@Incubating public SetProperty<Configuration> getTestConfigurations()
All resolved dependencies that appear only in the returned dependency configurations are marked with the 'test' classpath attribute on the Eclipse classpath.
The default value contains the following elements:
testSourceSets
, including the jvm-test-suite source setsNote, that this property should contain resolvable configurations only.