Skip to content
This repository has been archived by the owner on Aug 28, 2024. It is now read-only.

Azure spring boot modules dependency graph

Pan Li edited this page Dec 14, 2018 · 1 revision

Azure spring boot modules dependency graph

                       +----------+
                       | Root pom | <- for build only
                       +----------+
                       
                       +----------+              +----------------------------+
 |                     | Bom pom  |              | Spring boot starter parent |
 |                     +----------+              +----------------------------+
 |                    /            \               /
 |                  inherit        dependency    inherit
 |                  /                \           /
 |             +------------+       +------------+
flow           | Parent pom |       | Sample pom |
 |             +------------+       +------------+
 |             /             \
 |          inherit         inherit
 |           /                 \
 |       +-------------+       +----------+
 |       | Starter pom |       | Boot pom |
 v       +-------------+       +----------+
         /            \\\
      +-------------+  +-------------+  +------------------+
      | All staters |  | AAD starter |  | Keyvault starter |
      +-------------+  +-------------+  +------------------+ and rest starters ...

Our modules dependency graph is a little different to spring boot project. When leverage the ${revision feature of maven, only leaf pom version will be replaced to actual version defined in root pom, like 2.0.9.BUILD-SNAPSHOT. From the community suggestion, we should leverage flatten-maven-plugin which may not works well with below state, and may alter pom files in a lot of ways.

So we may just write some script to archive the target, and double check changes is need for each version upgrading.