Bundling

interface Bundling : 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

Functions

Link copied to clipboard
abstract fun getName(): String

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.