Skip to content

Unable to Override Spring Boot Version Efficiently in Maven while using Spring IO Platform Pom (with possible resolution) #7048

@miller79

Description

@miller79

Currently we have created a parent pom that we use in for our environment to manage versions of our internal dependencies and third party dependencies. This parent pom has a parent of the Spring IO Platform parent. The current platform pom uses 1.3.8.RELEASE of Spring Boot and there have been questions on how we can use the 1.4 version of Spring Boot while still using the parent for plugin management and dependency management.

After doing some analysis on the current structure of Spring Boot, I'm wondering if it makes sense to create a Spring-Boot Bom that would contain only Spring-Boot dependencies and have it as import scope inside of the spring-boot-dependencies pom. This should allow it to have a similar structure as the Spring Framework Bom and allow it to be flexible enough as new versions come along. Placing a property on this should allow users to override the version as necessary and also allow for flexibility of custom dependency management without having to worry about ordering them in a specific order as specified in the documentation:

http://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.html

The only issue with this is with the plugin management piece of Spring Boot as there isn't really a good way to override the versions in there while guaranteeing all the functionality required for the plugin. I know in the 1.3 version of Spring Boot, the spring-boot.version property controlled the plugin versions and I'm not sure if the plugin management will look the same in future versions. I know the property was removed in 1.4 due to confusion but with this structure maybe it could be reconsidered.

Let me know what you think and if there is another way that I may be missing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: declinedA suggestion or change that we don't feel we should currently apply

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions