Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.gradle.api
Interface Project

All Superinterfaces:
  java.lang.Comparable<Project>

    public interface Project

extends java.lang.Comparable<Project>

This interface is the main API you use to interact with Gradle from your build file. From a `Project`, you can programmatically access all Gradle's features.

### Lifecycle

There is a one-to-one relationship between a `Project` and a `"build.gradle"` file. During build initialisation, Gradle assembles a `Project` object for each project which is to participate in the build, as follows:

- Create a `Settings` instance for the build.
- Evaluate the `"settings.gradle"` script, if present, against the `Settings` object to configure it.
- Use the configured `Settings` object to create the hierarchy of `Project` instances.
- Finally, evaluate each `Project` by executing its `"build.gradle"` file, if present, against the project. The project are evaulated in breadth-wise order, such that a project is evaulated before its child projects. This order can be overridden by adding an evaluation dependency.

### Tasks

A project is essentially a collection of `Task` objects. Each task performs some basic piece of work, such as compiling classes, or running unit tests, or zipping up a WAR file. You add tasks to a project using one of the `add()` methods on `TaskContainer`, such as `TaskContainer.add(String)`. You can locate existing tasks using one of the lookup methods on `TaskContainer`, such as `TaskCollection.getByName(String)`.

### Dependencies

A project generally has a number of dependencies it needs in order to do its work. Also, a project generally produces a number of artifacts, which other projects can use. Those dependencies are grouped in configurations, and can be retrieved and uploaded from repositories. You use the `ConfigurationHandler` returned by `getConfigurations()` ()} method to manage the configurations. The `DependencyHandler` returned by `getDependencies()` method to manage the dependencies. The `ArtifactHandler` returned by `getArtifacts()` ()} method to manage the artifacts. The `RepositoryHandler` returned by `getRepositories()` ()} method to manage the repositories.

### Multi-project Builds

Projects are arranged into a hierarchy of projects. A project has a name, and a fully qualified path which uniquely identifies it in the hierarchy.

### Using a Project in a Build File

Gradle executes the project's build file against the `Project` instance to configure the project. Any property or method which your script uses which is not defined in the script is delegated through to the associated `Project` object. This means, that you can use any of the methods and properties on the `Project` interface directly in your script.

For example:

     defaultTasks('some-task')  // Delegates to Project.defaultTasks()
     reportDir = file('reports') // Delegates to Project.file() and Project.setProperty()

You can also access the `Project` instance using the `project` property. This can make the script clearer in some cases. For example, you could use `project.name` rather than `name` to access the project's name.

#### Dynamic Properties

A project has 5 property 'scopes', which it searches for properties. You can access these properties by name in your build file, or by calling the project's `property(String)` method. The scopes are:

- The `Project` object itself. This scope includes any property getters and setters declared by the `Project` implementation class. For example, `getRootProject()` is accessable as the `rootProject` property. The properties of this scope are readable or writable depending on the presence of the corresponding getter or setter method.
- The additional properties of the project. Each project maintains a map of additional properties, which can contain any arbitrary name -> value pair. The properties of this scope are readable and writable.
- The convention properties added to the project by each `Plugin` applied to the project. A `Plugin` can add properties and methods to a project through the project's `Convention` object. The properties of this scope may be readable or writable, depending on the convention objects.
- The tasks of the project. A task is accessable by using its name as a property name. The properties of this scope are read-only. For example, a task called `compile` is accessable as the `compile` property.
- The additional properties and convention properties of the project's parent project, recursively up to the root project. The properties of this scope are read-only.

When reading a property, the project searches the above scopes in order, and returns the value from the first scope it finds the property in. See `property(String)` for more details.

When writing a property, the project searches the above scopes in order, and sets the property in the first scope it finds the property in. If not found, the project adds the property to its map of additional properties. See `setProperty(String, Object)` for more details.

#### Dynamic Methods

A project has 5 method 'scopes', which it searches for methods:

- The `Project` object itself.
- The build file. The project searches for a matching method declared in the build file.
- The convention methods added to the project by each `Plugin` applied to the project. A `Plugin` can add properties and method to a project through the project's `Convention` object.
- The tasks of the project. A method is added for each task, using the name of the task as the method name and taking a single closure parameter. The method calls the `Task.configure(groovy.lang.Closure)` method for the associated task with the provided closure. For example, if the project has a task called `compile`, then a method is added with the following signature: `void compile(Closure configureClosure)`.
- The parent project, recursively up to the root project.

Field Summary
`static java.lang.String` | `DEFAULT_BUILD_DIR_NAME` The default build directory name.
`static java.lang.String` | `DEFAULT_BUILD_FILE` The default project build file name.
`static java.lang.String` | `DEFAULT_GROUP`
`static java.lang.String` | `DEFAULT_STATUS`
`static java.lang.String` | `DEFAULT_VERSION`
`static java.lang.String` | `GRADLE_PROPERTIES`
`static java.lang.String` | `PATH_SEPARATOR` The hierarchy separator for project and task path names
`static java.lang.String` | `SYSTEM_PROP_PREFIX`
`static java.lang.String` | `TMP_DIR_NAME`

Method Summary
`java.lang.String` | `absolutePath(java.lang.String path)` Converts a name to an absolute project path, resolving names relative to this project.
`void` | `afterEvaluate(Action<? super Project> action)` Adds an action to execute immediately after this project is evaluated.
`void` | `afterEvaluate(groovy.lang.Closure closure)` Adds a closure to be called immediately after this project has been evaluated.
`void` | `allprojects(Action<? super Project> action)` Executes the given `Action` against this project and its subprojects.
`void` | `allprojects(groovy.lang.Closure configureClosure)` Executes the given closure against this project and its sub-projects.
`AntBuilder` | `ant(groovy.lang.Closure configureClosure)` Executes the given closure against the `AntBuilder` for this project.
`void` | `applyActions(java.util.Set<Project> projects, Action<? super Project> action)`
`void` | `artifacts(groovy.lang.Closure configureClosure)` Configures the published artifacts for this project.
`void` | `beforeEvaluate(Action<? super Project> action)` Adds an action to execute immediately before this project is evaluated.
`void` | `beforeEvaluate(groovy.lang.Closure closure)` Adds a closure to be called immediately before this project is evaluated.
`void` | `buildscript(groovy.lang.Closure configureClosure)` Configures the build script classpath for this project.
`void` | `captureStandardOutput(LogLevel level)` Starts redirection of standard output during to the logging system during project evaluation.
`Project` | `childrenDependOnMe()` Declares that all child projects of this project have an execution dependency on this project.
`void` | `configurations(groovy.lang.Closure configureClosure)` Configures the dependency configurations for this project.
`java.lang.Iterable<?>` | `configure(java.lang.Iterable<?> objects, groovy.lang.Closure configureClosure)` Configures a collection of objects via a closure.
`java.lang.Object` | `configure(java.lang.Object object, groovy.lang.Closure configureClosure)` Configures an object via a closure, with the closure's delegate set to the supplied object.
`WorkResult` | `copy(groovy.lang.Closure closure)` Copy the specified files.
`AntBuilder` | `createAntBuilder()` Creates an additional `AntBuilder` for this project.
`RepositoryHandler` | `createRepositoryHandler()` Creates a new repository handler.
`Task` | `createTask(java.util.Map<java.lang.String,?> args, java.lang.String name)` Deprecated.
`Task` | `createTask(java.util.Map<java.lang.String,?> args, java.lang.String name, groovy.lang.Closure action)` Deprecated.
`Task` | `createTask(java.util.Map<java.lang.String,?> args, java.lang.String name, TaskAction action)` Deprecated.
`Task` | `createTask(java.lang.String name)` Deprecated.
`Task` | `createTask(java.lang.String name, groovy.lang.Closure action)` Deprecated.
`Task` | `createTask(java.lang.String name, TaskAction action)` Deprecated.
`void` | `defaultTasks(java.lang.String... defaultTasks)` Sets the names of the default tasks of this project.
`void` | `dependencies(groovy.lang.Closure configureClosure)` Configures the dependencies for this project.
`void` | `dependsOn(java.lang.String path)` Declares that this project has an execution dependency on the project with the given path.
`void` | `dependsOn(java.lang.String path, boolean evaluateDependsOnProject)` Declares that this project has an execution dependency on the project with the given path.
`Project` | `dependsOnChildren()` Declares that this project have an execution dependency on each of its child projects.
`Project` | `dependsOnChildren(boolean evaluateDependsOnProject)` Declares that this project have an execution dependency on each of its child projects.
`int` | `depthCompare(Project otherProject)` Compares the nesting level of this project with another project of the multi-project hierarchy.
`void` | `disableStandardOutputCapture()` Disables redirection of standard output during project evaluation.
`Project` | `evaluationDependsOn(java.lang.String path)` Declares that this project has an evaulation dependency on the project with the given path.
`java.io.File` | `file(java.lang.Object path)` Resolves a file path relative to the project directory of this project.
`java.io.File` | `file(java.lang.Object path, PathValidation validation)` Resolves a file path relative to the project directory of this project and validates it using the given scheme.
`ConfigurableFileCollection` | `files(java.lang.Object... paths)` Returns a `ConfigurableFileCollection` containing the given files.
`ConfigurableFileCollection` | `files(java.lang.Object paths, groovy.lang.Closure configureClosure)` Creates a new `ConfigurableFileCollection` using the given paths.
`ConfigurableFileTree` | `fileTree(groovy.lang.Closure closure)` Creates a new `ConfigurableFileTree` using the provided closure.
`ConfigurableFileTree` | `fileTree(java.util.Map<java.lang.String,?> args)` Creates a new `ConfigurableFileTree` using the provided map of arguments.
`ConfigurableFileTree` | `fileTree(java.lang.Object baseDir)` Creates a new `ConfigurableFileTree` using the given base directory.
`Project` | `findProject(java.lang.String path)` Locates a project by path.
`java.util.Set<Project>` | `getAllprojects()` Returns the set containing this project and its subprojects.
`java.util.Map<Project,java.util.Set<Task>>` | `getAllTasks(boolean recursive)` Returns a map of the tasks contained in this project, and optionally its subprojects.
`AntBuilder` | `getAnt()` Returns the `AntBuilder` for this project.
`ArtifactHandler` | `getArtifacts()` Returns a handler for assigning artifacts produced by the project to configurations.
`java.io.File` | `getBuildDir()` Returns the build directory of this project.
`java.lang.String` | `getBuildDirName()` Returns the name of the build directory of this project.
`java.io.File` | `getBuildFile()` Returns the build file Gradle will evaulate against this project object.
`ScriptHandler` | `getBuildscript()` Returns the build script handler for this project.
`java.util.Map<java.lang.String,Project>` | `getChildProjects()` Returns the direct children of this project.
`ConfigurationHandler` | `getConfigurations()` Returns the configurations of this project.
`Convention` | `getConvention()` Return the `Convention` for this project.
`java.util.List<java.lang.String>` | `getDefaultTasks()` Returns the names of the default tasks of this project.
`DependencyHandler` | `getDependencies()` Returns the dependencies of this project.
`java.util.Set<Project>` | `getDependsOnProjects()` Returns the set of projects which this project depends on.
`int` | `getDepth()` Returns the nesting level of a project in a multi-project hierarchy.
`Gradle` | `getGradle()` Returns the `Gradle` which this project belongs to.
`java.lang.Object` | `getGroup()` Returns the group of this project.
`Logger` | `getLogger()` Returns the logger for this project.
`java.lang.String` | `getName()` Returns the name of this project.
`Project` | `getParent()` Returns the parent project of this project, if any.
`java.lang.String` | `getPath()` Returns the path of this project.
`ProjectPluginsContainer` | `getPlugins()` Returns the plugins container for this project.
`Project` | `getProject()` Returns this project.
`java.io.File` | `getProjectDir()` The directory containing the project build file.
`java.util.Map<java.lang.String,?>` | `getProperties()` Returns the properties of this project.
`RepositoryHandler` | `getRepositories()` Returns a handler to create repositories which are used for retrieving dependencies and uploading artifacts produced by the project.
`java.io.File` | `getRootDir()` Returns the root directory of this project.
`Project` | `getRootProject()` Returns the root project for the hierarchy that this project belongs to.
`java.lang.Object` | `getStatus()` Returns the status of this project.
`java.util.Set<Project>` | `getSubprojects()` Returns the set containing the subprojects of this project.
`TaskContainer` | `getTasks()` Returns the tasks of this project.
`java.util.Set<Task>` | `getTasksByName(java.lang.String name, boolean recursive)` Returns the set of tasks with the given name contained in this project, and optionally its subprojects.
`java.lang.Object` | `getVersion()` Returns the version of this project.
`boolean` | `hasProperty(java.lang.String propertyName)` Determines if this project has the given property.
`Project` | `project(java.lang.String path)` Locates a project by path.
`Project` | `project(java.lang.String path, groovy.lang.Closure configureClosure)` Locates a project by path and configures it using the given closure.
`java.lang.Object` | `property(java.lang.String propertyName)` Returns the value of the given property.
`java.io.File` | `relativePath(java.lang.Object path)` Returns a file object with a relative path to the project directory.
`void` | `repositories(groovy.lang.Closure configureClosure)` Configures the repositories for this project.
`void` | `setBuildDirName(java.lang.String buildDirName)` Sets the build directory name of this project.
`void` | `setDefaultTasks(java.util.List<java.lang.String> defaultTasks)` Sets the names of the default tasks of this project.
`void` | `setProperty(java.lang.String name, java.lang.Object value)` Sets a property of this project.
`void` | `subprojects(Action<? super Project> action)` Executes the given `Action` against the subprojects of this project.
`void` | `subprojects(groovy.lang.Closure configureClosure)` Executes the given closure against each of the sub-projects of this project.
`Task` | `task(java.util.Map<java.lang.String,?> args, java.lang.String name)` Creates a `Task` with the given name and adds it to this project.
`Task` | `task(java.util.Map<java.lang.String,?> args, java.lang.String name, groovy.lang.Closure configureClosure)` Creates a `Task` with the given name and adds it to this project.
`Task` | `task(java.lang.String name)` Creates a `Task` with the given name and adds it to this project.
`Task` | `task(java.lang.String name, groovy.lang.Closure configureClosure)` Creates a `Task` with the given name and adds it to this project.
`Project` | `usePlugin(java.lang.Class<? extends Plugin> pluginClass)` Applies a `Plugin` to this project.
`Project` | `usePlugin(java.lang.String pluginName)` Applies a `Plugin` to this project.

Methods inherited from interface java.lang.Comparable
`compareTo`

Field Detail

### DEFAULT_BUILD_FILE

    static final java.lang.String DEFAULT_BUILD_FILE

  The default project build file name.

  See Also:
    Constant Field Values

### PATH_SEPARATOR

    static final java.lang.String PATH_SEPARATOR

  The hierarchy separator for project and task path names

  See Also:
    Constant Field Values

### DEFAULT_BUILD_DIR_NAME

    static final java.lang.String DEFAULT_BUILD_DIR_NAME

  The default build directory name.

  See Also:
    Constant Field Values

### GRADLE_PROPERTIES

    static final java.lang.String GRADLE_PROPERTIES

See Also:
  Constant Field Values

### SYSTEM_PROP_PREFIX

    static final java.lang.String SYSTEM_PROP_PREFIX

See Also:
  Constant Field Values

### TMP_DIR_NAME

    static final java.lang.String TMP_DIR_NAME

See Also:
  Constant Field Values

### DEFAULT_GROUP

    static final java.lang.String DEFAULT_GROUP

See Also:
  Constant Field Values

### DEFAULT_VERSION

    static final java.lang.String DEFAULT_VERSION

See Also:
  Constant Field Values

### DEFAULT_STATUS

    static final java.lang.String DEFAULT_STATUS

See Also:
  Constant Field Values

Method Detail

### getRootProject

    Project getRootProject()

  Returns the root project for the hierarchy that this project belongs to. In the case of a single-project build, this method returns this project.

  You can access this property in your build file using `rootProject`

  Returns:
    The root project. Never returns null.

### getRootDir

    java.io.File getRootDir()

  Returns the root directory of this project. The root directory is the project directory of the root project.

  You can access this property in your build file using `rootDir`

  Returns:
    The root directory. Never returns null.

### getBuildDir

    java.io.File getBuildDir()

  Returns the build directory of this project. The build directory is the directory which all artifacts are generated into. The default value for the build directory is `projectDir/build`

  You can access this property in your build file using `buildDir`

  Returns:
    The build directory. Never returns null.

### getBuildDirName

    java.lang.String getBuildDirName()

  Returns the name of the build directory of this project. It is resolved relative to the project directory of this project to determine the build directory. The default value is "build".

  You can access this property in your build file using `buildDirName`

  Returns:
    The build dir name. Never returns null.

### setBuildDirName

    void setBuildDirName(java.lang.String buildDirName)

  Sets the build directory name of this project.

  Parameters:
    `buildDirName` - The build dir name. Should not be null.

### getBuildFile

    java.io.File getBuildFile()

  Returns the build file Gradle will evaulate against this project object. The default is `"build.gradle"`. If an embedded script is provided the build file will be null.

  You can access this property in your build file using `buildFile`

  Returns:
    Current build file. May return null.

### getParent

    Project getParent()

  Returns the parent project of this project, if any.

  You can access this property in your build file using `parent`

  Returns:
    The parent project, or null if this is the root project.

### getName

    java.lang.String getName()

  Returns the name of this project. The project's name is not necessarily unique within a project hierarchy. You should use the `getPath()` method for a unique identifier for the project.

  You can access this property in your build file using `name`

  Returns:
    The name of this project. Never return null.

### getGroup

    java.lang.Object getGroup()

  Returns the group of this project. Gradle always uses the toString() value of a group. The group defaults to "unspecified".

  You can access this property in your build file using `group`

  Returns:
    The group of this project. Never returns null.

### getVersion

    java.lang.Object getVersion()

  Returns the version of this project. Gradle always uses the toString() value of a version. The version defaults to "unspecified".

  You can access this property in your build file using `version`

  Returns:
    The version of this project. Never returns null.

### getStatus

    java.lang.Object getStatus()

  Returns the status of this project. Gradle always uses the toString() value of a version. The status defaults to "release".

  You can access this property in your build file using `status`

  The status of the project is only relevant, if you upload libraries together with a module descriptor. The status specified here, will be part of this module descriptor.

  Returns:
    The status of this project. Never returns null.

### getChildProjects

    java.util.Map<java.lang.String,Project> getChildProjects()

  Returns the direct children of this project.

  You can access this property in your build file using `childProjects`

  Returns:
    A map from child project name to child project. Returns an empty map if this this project does not have any children.

### getDependsOnProjects

    java.util.Set<Project> getDependsOnProjects()

  Returns the set of projects which this project depends on.

  You can access this property in your build file using `dependsOnProjects`

  Returns:
    The set of projects. Returns an empty set if this project depends on no projects.

### setProperty

    void setProperty(java.lang.String name,
                     java.lang.Object value)

  Sets a property of this project. This method searches for a property with the given name in the following locations, and sets the property on the first location where it finds the property.

  1. The project object itself. For example, the `rootDir` project property.
  2. The project's `Convention` object. For example, the `srcRootName` java plugin property.
  3. The project's additional properties.

  If the property is not found in any of these locations, it is added to the project's additional properties.

  Parameters:
    `name` - The name of the property
    `value` - The value of the property

### getProject

    Project getProject()

  Returns this project. This method is useful in build files to explicitly access project properties and methods. For example, using `project.name` can express intent better than using `name`

  You can access this property in your build file using `project`

  Returns:
    This project. Never returns null.

### getAllprojects

    java.util.Set<Project> getAllprojects()

  Returns the set containing this project and its subprojects.

  You can access this property in your build file using `allprojects`

  Returns:
    The set of projects.

### getSubprojects

    java.util.Set<Project> getSubprojects()

  Returns the set containing the subprojects of this project.

  You can access this property in your build file using `subprojects`

  Returns:
    The set of projects. Returns an empty set if this project has no subprojects.

### usePlugin

    Project usePlugin(java.lang.String pluginName)

  Applies a `Plugin` to this project.

  Parameters:
    `pluginName` - The name of the plugin.
  Returns:
    This project.

### usePlugin

    Project usePlugin(java.lang.Class<? extends Plugin> pluginClass)

  Applies a `Plugin` to this project.

  Parameters:
    `pluginClass` - The class of the plugin. This class must implement the `Plugin` interface.
  Returns:
    This project.

### task

    Task task(java.lang.String name)
              throws InvalidUserDataException

  Creates a `Task` with the given name and adds it to this project. Calling this method is equivalent to calling `task(java.util.Map, String)` with an empty options map.

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project, an exception is thrown.

  Parameters:
    `name` - The name of the task to be created
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### task

    Task task(java.util.Map<java.lang.String,?> args,
              java.lang.String name)
              throws InvalidUserDataException

  Creates a `Task` with the given name and adds it to this project. A map of creation options can be passed to this method to control how the task is created. The following options are available:

  Option | Description | Default Value
  --- | --- | ---
  `"type"` | The class of the task to create. | `DefaultTask`
  `"overwrite"` | Replace an existing task? | `false`
  `"dependsOn"` | A task name or set of task names which this task depends on | `[]`
  `"action"` | A closure or `TaskAction` to add to the task. | `null`

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project and the `override` option is not set to true, an exception is thrown.

  Parameters:
    `args` - The task creation options.
    `name` - The name of the task to be created
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### task

    Task task(java.util.Map<java.lang.String,?> args,
              java.lang.String name,
              groovy.lang.Closure configureClosure)

  Creates a `Task` with the given name and adds it to this project. Before the task is returned, the given closure is executed to configure the task. A map of creation options can be passed to this method to control how the task is created. See `task(java.util.Map, String)` for the available options.

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project and the `override` option is not set to true, an exception is thrown.

  Parameters:
    `args` - The task creation options.
    `name` - The name of the task to be created
    `configureClosure` - The closure to use to configure the created task.
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### task

    Task task(java.lang.String name,
              groovy.lang.Closure configureClosure)

  Creates a `Task` with the given name and adds it to this project. Before the task is returned, the given closure is executed to configure the task.

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  Parameters:
    `name` - The name of the task to be created
    `configureClosure` - The closure to use to configure the created task.
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### createTask

    @Deprecated
    Task createTask(java.lang.String name)
                    throws InvalidUserDataException

  Deprecated.

  Creates a `Task` with the given name and adds it to this project. Calling this method is equivalent to calling `createTask(java.util.Map, String)` with an empty options map.

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project, an exception is thrown.

  Parameters:
    `name` - The name of the task to be created
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### createTask

    @Deprecated
    Task createTask(java.lang.String name,
                               TaskAction action)
                    throws InvalidUserDataException

  Deprecated.

  Creates a `Task` with the given name and adds it to this project. Before the task is returned, the given action is passed to the task's `Task.doFirst(Action)` method. Calling this method is equivalent to calling `createTask(java.util.Map, String, TaskAction)` with an empty options map.

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project, an exception is thrown.

  Parameters:
    `name` - The name of the task to be created
    `action` - The action to be passed to the `Task.doFirst(Action)` method of the created task.
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### createTask

    @Deprecated
    Task createTask(java.util.Map<java.lang.String,?> args,
                               java.lang.String name)
                    throws InvalidUserDataException

  Deprecated.

  Creates a `Task` with the given name and adds it to this project. A map of creation options can be passed to this method to control how the task is created. The following options are available:

  Option | Description | Default Value
  --- | --- | ---
  `"type"` | The class of the task to create. | `DefaultTask`
  `"overwrite"` | Replace an existing task? | `false`
  `"dependsOn"` | A task name or set of task names which this task depends on | `[]`

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project and the `override` option is not set to true, an exception is thrown.

  Parameters:
    `args` - The task creation options.
    `name` - The name of the task to be created
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### createTask

    @Deprecated
    Task createTask(java.util.Map<java.lang.String,?> args,
                               java.lang.String name,
                               TaskAction action)
                    throws InvalidUserDataException

  Deprecated.

  Creates a `Task` with the given name and adds it to this project. Before the task is returned, the given action is passed to the task's `Task.doFirst(Action)` method. A map of creation options can be passed to this method to control how the task is created. See `createTask(java.util.Map, String)` for the available options.

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project and the `override` option is not set to true, an exception is thrown.

  Parameters:
    `args` - The task creation options.
    `name` - The name of the task to be created
    `action` - The action to be passed to the `Task.doFirst(Action)` method of the created task.
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### createTask

    @Deprecated
    Task createTask(java.lang.String name,
                               groovy.lang.Closure action)

  Deprecated.

  Creates a `Task` with the given name and adds it to this project. Before the task is returned, the given action closure is passed to the task's `Task.doFirst(Closure)` method. Calling this method is equivalent to calling `createTask(java.util.Map, String, Closure)` with an empty options map.

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project, an exception is thrown.

  Parameters:
    `name` - The name of the task to be created
    `action` - The closure to be passed to the `Task.doFirst(Closure)` method of the created task.
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### createTask

    @Deprecated
    Task createTask(java.util.Map<java.lang.String,?> args,
                               java.lang.String name,
                               groovy.lang.Closure action)

  Deprecated.

  Creates a `Task` with the given name and adds it to this project. Before the task is returned, the given action closure is passed to the task's `Task.doFirst(Closure)` method. A map of creation options can be passed to this method to control how the task is created. See `createTask(java.util.Map, String)` for the available options.

  After the task is added to the project, it is made available as a property of the project, so that you can reference the task by name in your build file. See here for more details

  If a task with the given name already exists in this project and the `override` option is not set to true, an exception is thrown.

  Parameters:
    `args` - The task creation options.
    `name` - The name of the task to be created
    `action` - The closure to be passed to the `Task.doFirst(Closure)` method of the created task.
  Returns:
    The newly created task object
  Throws:
    `InvalidUserDataException` - If a task with the given name already exists in this project.

### getPath

    java.lang.String getPath()

  Returns the path of this project. The path is the fully qualified name of the project.

  Returns:
    The path. Never returns null.

### getDefaultTasks

    java.util.List<java.lang.String> getDefaultTasks()

  Returns the names of the default tasks of this project. These are used when no tasks names are provided when starting the build.

  Returns:
    The default task names. Returns an empty list if this project has no default tasks.

### setDefaultTasks

    void setDefaultTasks(java.util.List<java.lang.String> defaultTasks)

  Sets the names of the default tasks of this project. These are used when no tasks names are provided when starting the build.

  Parameters:
    `defaultTasks` - The default task names.

### defaultTasks

    void defaultTasks(java.lang.String... defaultTasks)

  Sets the names of the default tasks of this project. These are used when no tasks names are provided when starting the build.

  Parameters:
    `defaultTasks` - The default task names.

### dependsOn

    void dependsOn(java.lang.String path)
                   throws UnknownProjectException

  Declares that this project has an execution dependency on the project with the given path.

  Parameters:
    `path` - The path of the project which this project depends on.
  Throws:
    `UnknownProjectException` - If no project with the given path exists.

### dependsOn

    void dependsOn(java.lang.String path,
                   boolean evaluateDependsOnProject)
                   throws UnknownProjectException

  Declares that this project has an execution dependency on the project with the given path.

  Parameters:
    `path` - The path of the project which this project depends on.
    `evaluateDependsOnProject` - If true, adds an evaluation dependency.
  Throws:
    `UnknownProjectException` - If no project with the given path exists.

### evaluationDependsOn

    Project evaluationDependsOn(java.lang.String path)
                                throws UnknownProjectException

  Declares that this project has an evaulation dependency on the project with the given path.

  Parameters:
    `path` - The path of the project which this project depends on.
  Returns:
    The project which this project depends on.
  Throws:
    `UnknownProjectException` - If no project with the given path exists.

### childrenDependOnMe

    Project childrenDependOnMe()

  Declares that all child projects of this project have an execution dependency on this project.

  Returns:
    this project.

### dependsOnChildren

    Project dependsOnChildren()

  Declares that this project have an execution dependency on each of its child projects.

  Returns:
    this project.

### dependsOnChildren

    Project dependsOnChildren(boolean evaluateDependsOnProject)

  Declares that this project have an execution dependency on each of its child projects.

  Parameters:
    `evaluateDependsOnProject` - If true, adds an evaluation dependency.
  Returns:
    this project.

### findProject

    Project findProject(java.lang.String path)

  Locates a project by path. If the path is relative, it is interpreted relative to this project.

  Parameters:
    `path` - The path.
  Returns:
    The project with the given path. Returns null if no such project exists.

### project

    Project project(java.lang.String path)
                    throws UnknownProjectException

  Locates a project by path. If the path is relative, it is interpreted relative to this project.

  Parameters:
    `path` - The path.
  Returns:
    The project with the given path. Never returns null.
  Throws:
    `UnknownProjectException` - If no project with the given path exists.

### project

    Project project(java.lang.String path,
                    groovy.lang.Closure configureClosure)

  Locates a project by path and configures it using the given closure. If the path is relative, it is interpreted relative to this project. The target project is passed to the closure as the closure's delegate.

  Parameters:
    `path` - The path.
    `configureClosure` - The closure to use to configure the project.
  Returns:
    The project with the given path. Never returns null.
  Throws:
    `UnknownProjectException` - If no project with the given path exists.

### getAllTasks

    java.util.Map<Project,java.util.Set<Task>> getAllTasks(boolean recursive)

  Returns a map of the tasks contained in this project, and optionally its subprojects.

  Parameters:
    `recursive` - If true, returns the tasks of this project and its subprojects. If false, returns the tasks of just this project.
  Returns:
    A map from project to a set of tasks.

### getTasksByName

    java.util.Set<Task> getTasksByName(java.lang.String name,
                                       boolean recursive)

  Returns the set of tasks with the given name contained in this project, and optionally its subprojects.

  Parameters:
    `name` - The name of the task to locate.
    `recursive` - If true, returns the tasks of this project and its subprojects. If false, returns the tasks of just this project.
  Returns:
    The set of tasks. Returns an empty set if no such tasks exist in this project.

### getProjectDir

    java.io.File getProjectDir()

  The directory containing the project build file.

  You can access this property in your build file using `projectDir`

  Returns:
    The project directory. Never returns null.

### file

    java.io.File file(java.lang.Object path)

  Resolves a file path relative to the project directory of this project.

  path.toString will be used to get a string path. If this string can be interpreted as a relative path, the project directory will be used as a base directory.

  Parameters:
    `path` - An object who's toString method value is interpreted as a path to a file.
  Returns:
    The resolved file. Never returns null.

### file

    java.io.File file(java.lang.Object path,
                      PathValidation validation)
                      throws InvalidUserDataException

  Resolves a file path relative to the project directory of this project and validates it using the given scheme. See `PathValidation` for the list of possible validations.

  Parameters:
    `path` - An object which toString method value is interpreted as a relative path to the project directory.
    `validation` - The validation to perform on the file.
  Returns:
    The resolved file. Never returns null.
  Throws:
    `InvalidUserDataException` - When the file does not meet the given validation constraint.

### relativePath

    java.io.File relativePath(java.lang.Object path)

  Returns a file object with a relative path to the project directory. If the passed path is already a relative path, a file object with the same path is returned. If the passed path is an absolute path, a file object either the relative path to the project dir is returned, or null, if the absolute path has not the project dir as one of its parent dirs.

  Parameters:
    `path` - An object which toString method value is interpreted as path.
  Returns:
    A file with a relative path to the project dir, or null if the given path is outside the project dir.

### files

    ConfigurableFileCollection files(java.lang.Object... paths)

  Returns a `ConfigurableFileCollection` containing the given files. You can pass any of the following types to this method:

  - A `String`. Interpreted relative to the project directory, as a call to `file(Object)`.
  - A `Collection` or an array. May contain any of the types listed here. The elements of the collection are recursively converted to files.
  - A `FileCollection`. The contents of the collection are included in the returned collection.
  - A `Callable`. The `call()` method may return any of the types listed here. The return value of the `call()` method is recursively converted to files. A `null` return value is treated as an empty collection.
  - A Closure. May return any of the types listed here. The return value of the closure is recursively converted to files. A `null` return value is treated as an empty collection.
  - An Object. Its `toString()` value is treated the same way as a String, as per a call to `file(Object)`.

  The returned file collection is lazy, so that the paths are evaluated only when the contents of the file collection are queried. The file collection is also live, so that it evaluates the above each time the contents of the collection is queried.

  The returned file collection maintains the iteration order of the supplied paths.

  Parameters:
    `paths` - The paths to the files. May be empty.
  Returns:
    The file collection. Never returns null.

### files

    ConfigurableFileCollection files(java.lang.Object paths,
                                     groovy.lang.Closure configureClosure)

  Creates a new `ConfigurableFileCollection` using the given paths. The paths are evaluated as for `files(Object...)`. The file collection is configured using the given closure. The file collection is passed to the closure as its delegate. Example:

       files "$buildDir/classes" {
           builtBy 'compile'
       }

  The returned file collection is lazy, so that the paths are evaluated only when the contents of the file collection are queried. The file collection is also live, so that it evaluates the above each time the contents of the collection is queried.

  Parameters:
    `paths` - The contents of the file collection. Evaluated as for `files(Object...)`.
    `configureClosure` - The closure to use to configure the file collection.
  Returns:
    the configured file tree. Never returns null.

### fileTree

    ConfigurableFileTree fileTree(java.lang.Object baseDir)

  Creates a new `ConfigurableFileTree` using the given base directory. The given baseDir path is evaluated as for `file(Object)`.

  The returned file tree is lazy, so that it scans for files only when the contents of the file tree are queried. The file tree is also live, so that it scans for files each time the contents of the file tree are queried.

  Parameters:
    `baseDir` - The base directory of the file tree. Evaluated as for `file(Object)`.
  Returns:
    the file tree. Never returns null.

### fileTree

    ConfigurableFileTree fileTree(java.util.Map<java.lang.String,?> args)

  Creates a new `ConfigurableFileTree` using the provided map of arguments. The map will be applied as properties on the new file tree. Example:

       fileTree(dir:'src', excludes:['**/ignore/**','**/.svn/**'])

  The returned file tree is lazy, so that it scans for files only when the contents of the file tree are queried. The file tree is also live, so that it scans for files each time the contents of the file tree are queried.

  Parameters:
    `args` - map of property assignments to `ConfigurableFileTree` object
  Returns:
    the configured file tree. Never returns null.

### fileTree

    ConfigurableFileTree fileTree(groovy.lang.Closure closure)

  Creates a new `ConfigurableFileTree` using the provided closure. The closure will be used to configure the new file tree. The file tree is passed to the closure as its delegate. Example:

       fileTree {
          from 'src'
          exclude '**/.svn/**'
       }.copy { into 'dest'}

  The returned file tree is lazy, so that it scans for files only when the contents of the file tree are queried. The file tree is also live, so that it scans for files each time the contents of the file tree are queried.

  Parameters:
    `closure` - Closure to configure the `ConfigurableFileTree` object
  Returns:
    the configured file tree. Never returns null.

### absolutePath

    java.lang.String absolutePath(java.lang.String path)

  Converts a name to an absolute project path, resolving names relative to this project.

  Parameters:
    `path` - The path to convert.
  Returns:
    The absolute path.

### getAnt

    AntBuilder getAnt()

  Returns the `AntBuilder` for this project. You can use this in your build file to execute ant tasks.

  You can access this property in your build file using `ant`

  Returns:
    The `AntBuilder` for this project. Never returns null.

### createAntBuilder

    AntBuilder createAntBuilder()

  Creates an additional `AntBuilder` for this project. You can use this in your build file to execute ant tasks.

  Returns:
    Creates an `AntBuilder` for this project. Never returns null.
  See Also:
    `getAnt()`

### ant

    AntBuilder ant(groovy.lang.Closure configureClosure)

  Executes the given closure against the `AntBuilder` for this project. You can use this in your build file to execute ant tasks. The `AntBuild` is passed to the closure as the closure's delegate.

  You can call this method in your build file using `ant` followed by a code block.

  Parameters:
    `configureClosure` - The closure to execute against the `AntBuilder`.
  Returns:
    The `AntBuilder`. Never returns null.

### getConfigurations

    ConfigurationHandler getConfigurations()

  Returns the configurations of this project.

  Returns:
    The configuration of this project.

### configurations

    void configurations(groovy.lang.Closure configureClosure)

  Configures the dependency configurations for this project. Executes the given closure against the `ConfigurationHandler` for this project. The `ConfigurationHandler` is passed to the closure as the closure's delegate.

  Parameters:
    `configureClosure` - the closure to use to configure the dependency configurations.

### getArtifacts

    ArtifactHandler getArtifacts()

  Returns a handler for assigning artifacts produced by the project to configurations.

### artifacts

    void artifacts(groovy.lang.Closure configureClosure)

  Configures the published artifacts for this project. Executes the given closure against the `ArtifactHandler` for this project. The `ArtifactHandler` is passed to the closure as the closure's delegate.

  Parameters:
    `configureClosure` - the closure to use to configure the published artifacts.

### getConvention

    Convention getConvention()

  Return the `Convention` for this project.

  You can access this property in your build file using `convention`. You can also can also access the properties and methods of the convention object as if they were properties and methods of this project. See here for more details

  Returns:
    The `Convention`. Never returns null.

### depthCompare

    int depthCompare(Project otherProject)

  Compares the nesting level of this project with another project of the multi-project hierarchy.

  Parameters:
    `otherProject` - The project to compare the nesting level with.
  Returns:
    a negative integer, zero, or a positive integer as this project has a nesting level less than, equal to, or greater than the specified object.
  See Also:
    `getDepth()`

### getDepth

    int getDepth()

  Returns the nesting level of a project in a multi-project hierarchy. For single project builds this is always 0. In a multi-project hierarchy 0 is returned for the root project.

### getTasks

    TaskContainer getTasks()

  Returns the tasks of this project.

  Returns:
    the tasks of this project.

### subprojects

    void subprojects(Action<? super Project> action)

  Executes the given `Action` against the subprojects of this project.

  Parameters:
    `action` - The action to execute.

### subprojects

    void subprojects(groovy.lang.Closure configureClosure)

  Executes the given closure against each of the sub-projects of this project. The target project is passed to the closure as the closure's delegate.

  You can call this method in your build file using `subprojects` followed by a code block.

  Parameters:
    `configureClosure` - The closure to execute. The closure receives no parameters.

### allprojects

    void allprojects(Action<? super Project> action)

  Executes the given `Action` against this project and its subprojects.

  Parameters:
    `action` - The action to execute.

### allprojects

    void allprojects(groovy.lang.Closure configureClosure)

  Executes the given closure against this project and its sub-projects. The target project is passed to the closure as the closure's delegate.

  You can call this method in your build file using `allprojects` followed by a code block.

  Parameters:
    `configureClosure` - The closure to execute. The closure receives no parameters.

### applyActions

    void applyActions(java.util.Set<Project> projects,
                      Action<? super Project> action)

  Parameters:
    `projects` -
    `action` -

### beforeEvaluate

    void beforeEvaluate(Action<? super Project> action)

  Adds an action to execute immediately before this project is evaluated.

  Parameters:
    `action` - the action to execute.

### afterEvaluate

    void afterEvaluate(Action<? super Project> action)

  Adds an action to execute immediately after this project is evaluated.

  Parameters:
    `action` - the action to execute.

### beforeEvaluate

    void beforeEvaluate(groovy.lang.Closure closure)

  Adds a closure to be called immediately before this project is evaluated. The project is passed to the closure as a parameter.

  Parameters:
    `closure` - The closure to call.

### afterEvaluate

    void afterEvaluate(groovy.lang.Closure closure)

  Adds a closure to be called immediately after this project has been evaluated. The project is passed to the closure as a parameter. Such a listener gets notified when the build file belonging to this project has been executed. A parent project may for example add such a listener to its child project. Such a listener can futher configure those child projects based on the state of the child projects after their build files have been run.

  Parameters:
    `closure` - The closure to call.

### hasProperty

    boolean hasProperty(java.lang.String propertyName)

  Determines if this project has the given property. See here for details of the properties which are available for a project.

  Parameters:
    `propertyName` - The name of the property to locate.
  Returns:
    True if this project has the given property, false otherwise.

### getProperties

    java.util.Map<java.lang.String,?> getProperties()

  Returns the properties of this project. See here for details of the properties which are available for a project.

  Returns:
    A map from property name to value.

### property

    java.lang.Object property(java.lang.String propertyName)
                              throws groovy.lang.MissingPropertyException

  Returns the value of the given property. This method locates a property as follows:
  1. If this project object has a property with the given name, return the value of the property.
  2. If this project's convention object has a property with the given name, return the value of the property.
  3. If this project has an additional property with the given name, return the value of the property.
  4. If this project has a task with the given name, return the task.
  5. Search up through this project's ancestor projects for a convention property or additional property with the given name.
  6. If not found, throw `MissingPropertyException`

  Parameters:
    `propertyName` - The name of the property.
  Returns:
    The value of the property, possibly null.
  Throws:
    `groovy.lang.MissingPropertyException` - When the given property is unknown.

### getLogger

    Logger getLogger()

  Returns the logger for this project. You can use this in your build file to write log messages.

  You can use this property in your build file using `logger`.

  Returns:
    The logger. Never returns null.

### getGradle

    Gradle getGradle()

  Returns the `Gradle` which this project belongs to.

  You can use this property in your build file using `gradle`.

  Returns:
    The Gradle object. Never returns null.

### disableStandardOutputCapture

    void disableStandardOutputCapture()

  Disables redirection of standard output during project evaluation. By default redirection is enabled.

  See Also:
    `captureStandardOutput(org.gradle.api.logging.LogLevel)`

### captureStandardOutput

    void captureStandardOutput(LogLevel level)

  Starts redirection of standard output during to the logging system during project evaluation. By default redirection is enabled and the output is redirected to the QUIET level. System.err is always redirected to the ERROR level. Redirection of output at execution time can be configured via the tasks. In a multi-project this is a per-project setting. For more fine-grained control on redirecting standard output see `StandardOutputLogging`.

  Parameters:
    `level` - The level standard out should be logged to.
  See Also:
    `disableStandardOutputCapture()`, `Task.captureStandardOutput(org.gradle.api.logging.LogLevel)`, `Task.disableStandardOutputCapture()`

### configure

    java.lang.Object configure(java.lang.Object object,
                               groovy.lang.Closure configureClosure)

  Configures an object via a closure, with the closure's delegate set to the supplied object. This way you don't have to specify the context of a configuration statement multiple times. Instead of:

       MyType myType = new MyType()
       myType.doThis()
       myType.doThat()

  you can do:

       MyType myType = configure(new MyType()) {
           doThis()
           doThat()
       }

  Parameters:
    `object` - The object to configure
    `configureClosure` - The closure with configure statements
  Returns:
    The configured object

### configure

    java.lang.Iterable<?> configure(java.lang.Iterable<?> objects,
                                    groovy.lang.Closure configureClosure)

  Configures a collection of objects via a closure. This is equivalent to calling `configure(Object, groovy.lang.Closure)` for each of the given objects.

  Parameters:
    `objects` - The objects to configure
    `configureClosure` - The closure with configure statements
  Returns:
    The configured objects.

### getRepositories

    RepositoryHandler getRepositories()

  Returns a handler to create repositories which are used for retrieving dependencies and uploading artifacts produced by the project.

  Returns:
    the repository handler. Never returns null.

### repositories

    void repositories(groovy.lang.Closure configureClosure)

  Configures the repositories for this project. Executes the given closure against the `RepositoryHandler` for this project. The `RepositoryHandler` is passed to the closure as the closure's delegate.

  Parameters:
    `configureClosure` - the closure to use to configure the repositories.

### createRepositoryHandler

    RepositoryHandler createRepositoryHandler()

  Creates a new repository handler. Each repository handler is a factory and container for repositories. For example each instance of an upload task has its own repository handler.

  Returns:
    a new repository handler

### getDependencies

    DependencyHandler getDependencies()

  Returns the dependencies of this project. The returned dependency handler instance can be used for adding new dependencies. For accessing already declared dependencies, the configurations can be used.

  Returns:
    the dependency handler. Never returns null.
  See Also:
    `getConfigurations()`

### dependencies

    void dependencies(groovy.lang.Closure configureClosure)

  Configures the dependencies for this project. Executes the given closure against the `DependencyHandler` for this project. The `DependencyHandler` is passed to the closure as the closure's delegate.

  Parameters:
    `configureClosure` - the closure to use to configure the dependencies.

### getPlugins

    ProjectPluginsContainer getPlugins()

  Returns the plugins container for this project. The returned container can be used to manage the plugins which are used by this project.

  Returns:
    the plugin container. Never returns null.

### getBuildscript

    ScriptHandler getBuildscript()

  Returns the build script handler for this project. You can use this handler to manage the classpath used to compile and execute the project's build script.

  Returns:
    the classpath handler. Never returns null.

### buildscript

    void buildscript(groovy.lang.Closure configureClosure)

  Configures the build script classpath for this project. The given closure is executed against this project's `ScriptHandler`. The `ScriptHandler` is passed to the closure as the closure's delegate.

  Parameters:
    `configureClosure` - the closure to use to configure the build script classpath.

### copy

    WorkResult copy(groovy.lang.Closure closure)

  Copy the specified files. The closure configures a `CopySpec`. Note that the sources used in the `from()` method may be one or more:
  - File Objects
  - String paths relative to the project root
  - Any FileCollection (like a configuration)
  - Any Iterable
  Example:

       copy {
          from configurations.runtime
          into 'build/deploy/lib'
       }

  Note that CopySpecs can be nested:

       copy {
          into('build/webroot')
          exclude('**/.svn/**')
          from('src/main/webapp') {
             include '**/*.jsp'
             filter(ReplaceTokens, tokens:[copyright:'2009', version:'2.3.1'])
          }
          from('src/main/js') {
             include '**/*.js'
          }
       }

  Parameters:
    `closure` - Closure to configure the CopySpec
  Returns:
    `WorkResult` that can be used to check if the copy did any work.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD