# BinarySpec

API Documentation: | `BinarySpec`

Known Subtypes: |
`NativeBinarySpec`
`PlayApplicationBinarySpec`

Note: This class is incubating and may change in a future version of Gradle.

Represents a binary artifact that is the result of building a project component.

### Properties

Property | Description
`buildDependencies` | Returns a dependency which contains the tasks which build this artifact. All `Buildable` implementations must ensure that the returned dependency object is live, so that it tracks changes to the dependencies of this buildable.
`buildTask` | Incubating The 'lifecycle' task associated with the construction of this element.
`buildable` | Incubating Can this binary be built in the current environment?
`source` | Deprecated Incubating The source sets used to compile this binary.
`tasks` | Incubating The set of tasks associated with this binary.

### Methods

Method | Description
`builtBy(tasks)` | Incubating Adds a task that is required for the construction of this element. A task added this way is then added as a dependency of the associated lifecycle task.
`sources(action)` | Incubating Configures the source sets used to build this binary.

### Script blocks

No script blocks

### Property details

#### `TaskDependency` `buildDependencies` (read-only)

Returns a dependency which contains the tasks which build this artifact. All `Buildable` implementations must ensure that the returned dependency object is live, so that it tracks changes to the dependencies of this buildable.

#### `Task` `buildTask`

Note: This property is incubating and may change in a future version of Gradle.

The 'lifecycle' task associated with the construction of this element.

#### `boolean` `buildable` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

Can this binary be built in the current environment?

#### ``DomainObjectSet`<`LanguageSourceSet`>` `source` (read-only)

Note: This property is deprecated and will be removed in the next major version of Gradle.

Note: This property is incubating and may change in a future version of Gradle.

The source sets used to compile this binary.

#### `BinaryTasksCollection` `tasks` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

The set of tasks associated with this binary.

### Method details

#### `void` `builtBy`(``Object`...` tasks)

Note: This method is incubating and may change in a future version of Gradle.

Adds a task that is required for the construction of this element. A task added this way is then added as a dependency of the associated lifecycle task.

#### `void` `sources`(``Action`<? super `ModelMap`<`LanguageSourceSet`>>` action)

Note: This method is incubating and may change in a future version of Gradle.

Configures the source sets used to build this binary.