# Package org.gradle.api.component

@NonNullApi package org.gradle.api.component
Types for declaring and using Software Components.

Since:
  1.4

- Related Packages
  Package
  Description
  org.gradle.api
  Gradle's build language API, which is available from your build files.
- Interfaces
  Class
  Description
  AdhocComponentWithVariants
  A component which can declare additional variants corresponding to features.
  Artifact
  An artifact of a software component that may be requested in the result of an artifact query.
  BuildableComponent
  Represents a component that can be built.
  Component
  A software component that can be queried via the Artifact Query API.
  ComponentWithCoordinates
  Represents a component that determines its publication coordinates.
  ComponentWithVariants
  Represents a `SoftwareComponent` that provides one or more mutually exclusive children, or variants.
  ConfigurationVariantDetails
  The details object used to determine what to do with a configuration variant when publishing.
  PublishableComponent
  Represents a component that can be published.
  SoftwareComponent
  A software component produced by a Gradle software project.
  SoftwareComponentContainer
  A Container that contains all of the Software Components produced by a Project.
  SoftwareComponentFactory
  A software component factory is responsible for providing to plugins a way to create software components.
  SoftwareComponentVariant
  A software component variant, which has a number of artifacts, dependencies, constraints and capabilities, and that can be published to various formats (Gradle metadata, POM, ivy.xml, ...)