# Interface BuildableComponentSpec

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

All Known Subinterfaces:
  `ApplicationBinarySpec, AssemblerSourceSet, BinarySpec, CppSourceSet, CSourceSet, CUnitTestSuiteBinarySpec, DependentSourceSet, DependentSourceSet, GoogleTestTestSuiteBinarySpec, HeaderExportingSourceSet, LanguageSourceSet, LibraryBinarySpec, NativeBinarySpec, NativeExecutableBinarySpec, NativeLibraryBinarySpec, NativeResourceSet, NativeTestSuiteBinarySpec, ObjectiveCppSourceSet, ObjectiveCSourceSet, SharedLibraryBinarySpec, StaticLibraryBinarySpec, TestSuiteBinarySpec, 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.
  `@Nullable Task`
  `getBuildTask()`
  Returns the task responsible for building this component.
  `boolean`
  `hasBuildDependencies()`
  `void`
  `setBuildTask(@Nullable 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(@Nullable 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()