Package org.gradle.api.attributes

## Interface Bundling

- All Superinterfaces:
    `Named`

      public interface Bundling
      extends Named

  This attribute describes how dependencies of a component are found. There are currently 3 supported modes:
  - `external`, the default, where dependencies, if any, are found transitively
  - `embedded`, where dependencies are found inside the component, but using the same namespace as the original dependencies
  - `shadowed`, where dependencies are found inside the component, but within a different namespace to avoid name clashes

  As a practical example, let's consider the Java ecosystem:

  - Jar component:
    - `external` indicates that transitive dependencies are themselves component jars
    - `embedded` indicates that transitive dependencies have been included inside the component jar, without modifying their packages
    - `shadowed` indicates that transitive dependencies have been included inside the component jar, under different packages to prevent conflicts
  - Sources component:
    - `external` indicates that the source of transitive dependencies are themselves source jars
    - `embedded` indicates that the source of transitive dependencies have been included inside the component source jar, without modifying their packages
    - `shadowed` indicates that the source of transitive dependencies have been included inside the component source jar, under different packages
  Since:
    5.3

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Named

      `Named.Namer`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Attribute<Bundling>` | `BUNDLING_ATTRIBUTE` |
    `static String` | `EMBEDDED` | Dependencies are packaged within the main component artifact.
    `static String` | `EXTERNAL` | The most common case: dependencies are provided as individual components.
    `static String` | `SHADOWED` | Dependencies are packaged within the main component artifact but also in a different namespace to prevent conflicts.

  - ### Method Summary

    - ### Methods inherited from interface org.gradle.api.Named

      `getName`

- - ### Field Detail

    - #### BUNDLING_ATTRIBUTE

          static final Attribute<Bundling> BUNDLING_ATTRIBUTE

    - #### EXTERNAL

          static final String EXTERNAL

      The most common case: dependencies are provided as individual components.
      See Also:
        Constant Field Values

    - #### EMBEDDED

          static final String EMBEDDED

      Dependencies are packaged within the main component artifact.
      See Also:
        Constant Field Values

    - #### SHADOWED

          static final String SHADOWED

      Dependencies are packaged within the main component artifact but also in a different namespace to prevent conflicts.
      See Also:
        Constant Field Values