Following diagram highlights the important App Starter POM dependencies.
The dependencies are grouped in three categories:
Spring Boot
, Spring Integration
,
Spring Cloud
. The "Bill Of Materials" (BOM) patterns is actively used throughout the stack to decouple the
dependency management for plugins and lifecycle configurations.
The app-starters-build
and the app-starters-core-dependencies
BOM provide the generic compile-time
dependencies
for the App Starters projects.[my-app-name]-app-starters-build
pom inherits all compile-time configurations and BOM from the core parent
app-starters-build
, while the [my-app-name]-app-dependencies
BOM offers a place to manage the app specific dependencies.
In addition to the external libraries, the [my-app-name]-app-dependencies
BOM manages the Apps projects dependencies
too (e.g. spring-cloud-starters-stream-[type]-[my-app-name]
).
It is important to realize that the App Starter projects are not Spring Boot applications but used as seeds for the auto-generated Apps.run-time
starter artifacts generated from the Specific App Starters and
managed as Spring Boot
applications. The run-time
starter extends from Spring Boot parent and merges the configurations
of the specific app
, core app
as well as the boot
BOMs (e.g. [my-app-name]-app-dependencies
,
app-starters-core-dependencies
, spring-boot-dependencies
). The generated starter also includes specific starter
implementation as well as the required [binder] starter.