Package org.gradle.api

## 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`, `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 org.gradle.api.Named

      `Named.Namer`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    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 org.gradle.api.Buildable

      `getBuildDependencies`

    - ### Methods inherited from interface org.gradle.platform.base.ComponentSpec

      `getProjectPath`

    - ### Methods inherited from interface org.gradle.model.ModelElement

      `getDisplayName, getName`

- - ### Method Detail

    - #### 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()