Bundling

interface Bundling : Named(source)

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

Properties

Link copied to clipboard
Link copied to clipboard
val EMBEDDED: String = "embedded"
Dependencies are packaged within the main component artifact.
Link copied to clipboard
val EXTERNAL: String = "external"
The most common case: dependencies are provided as individual components.
Link copied to clipboard
val SHADOWED: String = "shadowed"
Dependencies are packaged within the main component artifact but also in a different namespace to prevent conflicts.

Functions

Link copied to clipboard
abstract fun getName(): String