This Bill Of Materials for Spring Boot 2.7 contains starters which are currently used by the
Spring Boot Mission Boosters.
This document is updated on a "best effort" basis, based on the information contained in the pom.xml
file. In case of inconsistency between this document and the POM file, the POM information prevails.
This BOM is aligned to:
-
Spring Boot: 2.7.3
-
Spring Cloud Kubernetes: 2.1.3
-
RESTEasy: 3.15.3.Final
-
Tomcat: 10.0.23
-
Hibernate: 6.1.2.Final
-
Hibernate Validator: 7.0.5.Final
This BOM is using the following versioning scheme:
dev.snowdrop:snowdrop-dependencies:<targeted spring boot release version>.<qualifier>[1-9]
-
Alpha
(first semi-stable releases), -
Beta
(no more API changes, bugs might still occur), -
CR
(Candidate Release, release quality but minor bugs or known postponed issues are possible), -
Final
(release version), -
SP
(Service Patch, post-release version for fixes needed after a release).
Qualifiers are numbered and we should try to limit their number to 9 but we should still be able to handle more than 10 versions for a given qualifier.
Until a version is released, the BOM version will be <target spring boot version>-SNAPSHOT
. Once it’s released, we will switch to <target spring boot version>.SP<current SP version + 1>-SNAPSHOT
.
So, right now, as we are targeting Spring Boot version 2.7.3.RELEASE, our BOM GAV will be:
dev.snowdrop:snowdrop-dependencies:2.7.3-SNAPSHOT
until released. The released version will be
dev.snowdrop:snowdrop-dependencies:2.7.3.Final
and the new version in the 2.3 branch will
be dev.snowdrop:snowdrop-dependencies:2.7.3.SP1-SNAPSHOT
.
See SB-162 for a discussion of BOM versioning.
The artifacts are released on Sonatype Open Source Software Repository Hosting (OSSRH), which is
then synchronized to Maven Central. To perform a release, you need to activate the release
profile.
-
Make sure that your computer is properly set up as explained in http://central.sonatype.org/pages/apache-maven.html. In particular, this implies having a Sonatype JIRA account, added the appropriate configuration in your Maven
settings.xml
and having GPG set up on your computer. -
Check this README for outdated information, notably dependency versions.
-
Prepare the release:
mvn release:prepare -Prelease
on a "clean" repository (i.e. everything is committed and pushed). Note that the project version in the POM file needs to end in-SNAPSHOT
to be recognized as needing release.-
The release plugin will ask you several questions based on the current project version. Let’s assume we’re trying to release the
1.5.8.Beta2
of the BOM. The current project version should be1.5.8-SNAPSHOT
if the version conventions (above) have been properly followed. Based on this, the release plugin will offer to release version1.5.8
of the BOM. -
Override this version by type
1.5.8.Beta2
-
Override the tag name to use the same version:
1.5.8.Beta2
instead of the default suggestion -
Override the suggested next release version as appropriate, in this case, since we’re haven’t released a final version of the 1.5.8 BOM, the next version still needs to be
1.5.8-SNAPSHOT
.
-
-
Once this prepare step is done, check that everything is as expected and then release:
mvn release:perform -Prelease
. -
If everything went well, the new artifact should be available on Maven Central after a couple of minutes.
Note that the Sonatype release plugin is configured to auto-release the artifacts from staging, resulting in a faster, more automated release process. This is not mandatory and can be changed in the plugin configuration.