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 java.lang.String EMBEDDED
      Dependencies are packaged within the main component artifact.
      static java.lang.String EXTERNAL
      The most common case: dependencies are provided as individual components.
      static java.lang.String SHADOWED
      Dependencies are packaged within the main component artifact but also in a different namespace to prevent conflicts.
    • Method Summary

    • Field Detail

      • EXTERNAL

        static final java.lang.String EXTERNAL
        The most common case: dependencies are provided as individual components.
        See Also:
        Constant Field Values
      • EMBEDDED

        static final java.lang.String EMBEDDED
        Dependencies are packaged within the main component artifact.
        See Also:
        Constant Field Values
      • SHADOWED

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