# Interface BuildableComponentSpec

All Superinterfaces:
  `Buildable, ComponentSpec, ModelElement, Named`

All Known Subinterfaces:
  `ApplicationBinarySpec, AssemblerSourceSet, BinarySpec, ClassDirectoryBinarySpec, CoffeeScriptSourceSet, CppSourceSet, CSourceSet, CUnitTestSuiteBinarySpec, DependentSourceSet, DependentSourceSet, GoogleTestTestSuiteBinarySpec, HeaderExportingSourceSet, JarBinarySpec, JavaScriptSourceSet, JavaSourceSet, JUnitTestSuiteBinarySpec, JvmBinarySpec, JvmClasses, JvmResourceSet, JvmTestSuiteBinarySpec, LanguageSourceSet, LibraryBinarySpec, NativeBinarySpec, NativeExecutableBinarySpec, NativeLibraryBinarySpec, NativeResourceSet, NativeTestSuiteBinarySpec, ObjectiveCppSourceSet, ObjectiveCSourceSet, PlayApplicationBinarySpec, PublicAssets, RoutesSourceSet, ScalaLanguageSourceSet, SharedLibraryBinarySpec, StaticLibraryBinarySpec, TestSuiteBinarySpec, TwirlSourceSet, VisualStudioProject, VisualStudioSolution, WindowsResourceSet`

All Known Implementing Classes:
  `org.gradle.api.internal.AbstractBuildableComponentSpec, org.gradle.language.base.internal.AbstractLanguageSourceSet, BaseBinarySpec, BaseLanguageSourceSet`

@Incubating public interface BuildableComponentSpec extends Buildable, ComponentSpec
A `ComponentSpec` that is directly `Buildable` via a specified task.

## Nested Class Summary

### Nested classes/interfaces inherited from interface Named

`Named.Namer`

## Method Summary

Modifier and Type
Method
Description
`void`
`builtBy(Object... tasks)`
Adds tasks required to build this component.
`Task`
`getBuildTask()`
Returns the task responsible for building this component.
`boolean`
`hasBuildDependencies()`
`void`
`setBuildTask(Task buildTask)`
Specifies the task responsible for building this component.

### Methods inherited from interface Buildable

`getBuildDependencies`

### Methods inherited from interface ComponentSpec

`getProjectPath`

### Methods inherited from interface ModelElement

`getDisplayName, getName`

## Method Details

### getBuildTask

@Nullable Task getBuildTask()
Returns the task responsible for building this component.

### setBuildTask

void setBuildTask(Task buildTask)
Specifies the task responsible for building this component.

### builtBy

void builtBy(Object... tasks)
Adds tasks required to build this component. Tasks added this way are subsequently added as dependencies of this component's `build task`.

### hasBuildDependencies

boolean hasBuildDependencies()