vaadin / spring

Spring integration for Vaadin
https://vaadin.com/start
174 stars 101 forks source link

vaadin-spring-boot-starter requires inconsistent dependency versions #1070

Open archiecobbs opened 11 months ago

archiecobbs commented 11 months ago

I like to use the maven-enforcer-plugin to ensure reliable builds.

In particular, <requireUpperBoundDeps/> it good practice because it "requires that the version for each dependency resolved during a build, is equal to or higher than all transitive dependency declarations" (see description).

But this check fails due to several inconsistencies in Vaadin's dependencies.

For example:

Note that there is a conflict created for spring-boot-starter-web - which is it? 3.1.2 or 3.1.3?

So Vaadin is in effect creating a small mess of indeterminacy in everyone's Maven projects.

This failure is ironic because part of the promise of Spring Boot is that it provides a wholly consistent set of dependencies for commonly used dependencies.

This problem should be easy to fix: simply include the Maven enforcer with <requireUpperBoundDeps/> in all Vaadin projects.

Or even better, include <dependencyConvergence/> which simply "requires that dependency version numbers converge".

Then Vaadin projects won't build with inconsistent dependencies.