The concept of auto-configuration and starter-POMs are related, but not directly tied:
Auto-configuration is responsible for reacting to the current state of an application and configuring appropriate Spring Beans. More often than not, the primary driver for auto-configuration will be the users classpath.
Starter POMs are responsible for pulling in dependencies that are commonly used together.
In other words, Starter POMs configure the classpath, and auto-configuration reacts to it.
First of all, please follow the current recommended module naming conventions. If you are supporting several generations of Spring Boot, extra recommendations apply that are detailed below.
If the Spring Boot support is the primary target of your project, use different major versions to support separate Spring Boot generations: Let’s assume that 2.4.2
is the current version of your project (using Spring Boot 1.x
): switch to 3.0.0
on master
to support Spring Boot 2 and create a 2.4.x
branch for the Spring Boot 1 support. In particular, do not create another module in the same master
area as it makes naming hard and your build more complicated for little benefit for your users.
If the Spring Boot support is an integration of many in your project, you cannot apply the same principles. We recommend you to chose one generation you want to support, and one generation only. The reasoning is that when your users upgrade to the next version of your project, they get to upgrade to a newer version of Spring Boot as well. If they can’t or won’t do that at the moment, they can stay with the previous version of your library.
If you don’t want to do that, the support for the previous generation can be located in a separate auto-configuration
module and a separate starter
. When naming those new projects, do not include the Spring Boot generation in its name. For instance if you have acme-spring-boot-starter
, you can switch to Spring Boot 2 and create an acme-legacy-spring-boot-starter
for the support of Spring Boot 1. Once you decide you don’t want to support Spring Boot 1 any longer, the starter and auto-configuration modules can be removed.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4