Previously, the documentation included hand-written tables for the
application, production, and technical starters.
This commit replaces the hand-written tables with tables that are
generated automatically from all of the starter poms, thereby ensuring
that the documentation is automatically kept up-to-date as starters
are added and removed. An extra column provided a link to each
starter's pom on GitHub has also been added to the table. This makes
it easier for users to see exactly what each starter contains.
Closes gh-5267
Our Investigations show that JNDI lookup is quite costly on Jetty and it
was enabled by default while embedded tomcat does not. This commit
excludes `jetty-jndi` to align the behavior with Tomcat.
If you are relying on JNDI, the `jetty-jndi` should simply be added in
your project.
Closes gh-4710
The documentation claims that JSPs don't work with embedded Jetty
making the dependency on jetty-jsp pointless. Furthermore,
spring-boot-starter-tomcat doesn't include JSP support and Undertow
doesn't support JSPs at all so removing jetty-jsp makes the embedded
container starters more consistent. It also removes 3.2MB from a
Jetty-based fat jar (spring-boot-sample-jetty drops from 12MB to
8.8MB).
Closes gh-2680
Remove superfluous dependencies from spring-boot-starter-tomcat and
spring-boot-starter-jetty which caused gradle based builds to put
too many libraries in `/lib-provided` when building a war.
Fixes gh-1064
Update all starter POMs to remove commons-logging dependencies that are
not longer required when using the Spring Boot Gradle plugin.
Mainly reverts code from 196f92bd42
See gh-1047
Gradle hasn’t different exclusion semantics to Maven. In Maven you can
exclude spring-core’s commons-logging dependency once and it’ll be
honoured even if you have multiple transitive routes to commons-logging
via spring-core. In Gradle you have to exclude commons-logging from
everything that has a transitive spring-core dependency. To make matters
worse this doesn’t only apply to dependencies and exclusions declared in
build.gradle but also to dependencies and exclusions declared in the pom
files of the artifacts that a Gradle build depends upon.
In short, to make our starters work as intended with Gradle, this commit
adds many, many exclusions for commons-logging. It also removes
commons-logging exclusions from spring-boot-dependencies’
<dependencyManagement> as they have no effect with Gradle and their
presence can cause us to miss required exclusions in a starter
Fixes#987