Previously, the web starter declared direct dependencies on Hibernate Validator
and the Jakarta EE validation API. This meant that it required two exclusions to
exclude validation from a web application that did not need it.
This commit updates the web starter to get its validation dependencies via a
dependency on the validation starter. This allows validation to be excluded
using a single exclusion. The EL dependency from the validation starter has
been excluded to allow the EL implementation from the underlying container
starter (Tomcat, Jetty, or Undertow) to continue to be used instead.
Closes gh-16176
This commit reworks 40d8726 as it has introduced an unfortunate side
effect for those who are using a starter with optional starter
dependencies.
`spring-boot-starter-web` defines the json and the tomcat starter. The
latter is part of a set of starters that do not bring the base starter
and the former can be excluded to use gson rather than jackson.
When such arrangement happens, spring-boot-starter-web no longer defines
the base starter (and therefore doesn't bring the core dependencies
that Spring Boot needs to bootstrap).
This commit reviews the starters that define optional starters and
reintroduce the base starter.
Closes gh-14076
Move projects to better reflect the way that Spring Boot is released.
The following projects are under `spring-boot-project`:
- `spring-boot`
- `spring-boot-autoconfigure`
- `spring-boot-tools`
- `spring-boot-starters`
- `spring-boot-actuator`
- `spring-boot-actuator-autoconfigure`
- `spring-boot-test`
- `spring-boot-test-autoconfigure`
- `spring-boot-devtools`
- `spring-boot-cli`
- `spring-boot-docs`
See gh-9316