Reputation: 133
In Spring Boot Documentation there is a section Use Tomcat 7.x or 8.0 with Gradle This works great with Maven as shown in some spring-boot-samples, but unfortunately not for Gradle.
Is there a easier solution than excluding all tomcat dependencies form tomcat-starter and add them separately with another version?
To Reproduce: If you convert the sample project spring-boot-sample-tomcat80-ssl into a Gradle project with following dependencies:
dependencies {
compile("org.springframework.boot:spring-boot-starter:1.4.2.RELEASE")
compile("org.springframework.boot:spring-boot-starter-tomcat:1.4.2.RELEASE")
compile("org.springframework:spring-webmvc:4.3.4.RELEASE")
compile("org.apache.httpcomponents:httpclient:4.5.2")
compile("org.apache.tomcat:tomcat-juli:8.0.36")
compile("org.yaml:snakeyaml:1.17")
testCompile 'org.springframework.boot:spring-boot-starter-test:1.4.2.RELEASE'
}
The output from gradlew dependencies
looks like this:
compile - Dependencies for source set 'main'.
+--- org.springframework.boot:spring-boot-starter:1.4.2.RELEASE
| +--- org.springframework.boot:spring-boot:1.4.2.RELEASE
| | +--- org.springframework:spring-core:4.3.4.RELEASE
| | | \--- commons-logging:commons-logging:1.2
| | \--- org.springframework:spring-context:4.3.4.RELEASE
| | +--- org.springframework:spring-aop:4.3.4.RELEASE
| | | +--- org.springframework:spring-beans:4.3.4.RELEASE
| | | | \--- org.springframework:spring-core:4.3.4.RELEASE (*)
| | | \--- org.springframework:spring-core:4.3.4.RELEASE (*)
| | +--- org.springframework:spring-beans:4.3.4.RELEASE (*)
| | +--- org.springframework:spring-core:4.3.4.RELEASE (*)
| | \--- org.springframework:spring-expression:4.3.4.RELEASE
| | \--- org.springframework:spring-core:4.3.4.RELEASE (*)
| +--- org.springframework.boot:spring-boot-autoconfigure:1.4.2.RELEASE
| | \--- org.springframework.boot:spring-boot:1.4.2.RELEASE (*)
| +--- org.springframework.boot:spring-boot-starter-logging:1.4.2.RELEASE
| | +--- ch.qos.logback:logback-classic:1.1.7
| | | +--- ch.qos.logback:logback-core:1.1.7
| | | \--- org.slf4j:slf4j-api:1.7.20 -> 1.7.21
| | +--- org.slf4j:jcl-over-slf4j:1.7.21
| | | \--- org.slf4j:slf4j-api:1.7.21
| | +--- org.slf4j:jul-to-slf4j:1.7.21
| | | \--- org.slf4j:slf4j-api:1.7.21
| | \--- org.slf4j:log4j-over-slf4j:1.7.21
| | \--- org.slf4j:slf4j-api:1.7.21
| +--- org.springframework:spring-core:4.3.4.RELEASE (*)
| \--- org.yaml:snakeyaml:1.17
+--- org.springframework.boot:spring-boot-starter-tomcat:1.4.2.RELEASE
| +--- org.apache.tomcat.embed:tomcat-embed-core:8.5.6
| +--- org.apache.tomcat.embed:tomcat-embed-el:8.5.6
| \--- org.apache.tomcat.embed:tomcat-embed-websocket:8.5.6
| \--- org.apache.tomcat.embed:tomcat-embed-core:8.5.6
+--- org.springframework:spring-webmvc:4.3.4.RELEASE
| +--- org.springframework:spring-aop:4.3.4.RELEASE (*)
| +--- org.springframework:spring-beans:4.3.4.RELEASE (*)
| +--- org.springframework:spring-context:4.3.4.RELEASE (*)
| +--- org.springframework:spring-core:4.3.4.RELEASE (*)
| +--- org.springframework:spring-expression:4.3.4.RELEASE (*)
| \--- org.springframework:spring-web:4.3.4.RELEASE
| +--- org.springframework:spring-aop:4.3.4.RELEASE (*)
| +--- org.springframework:spring-beans:4.3.4.RELEASE (*)
| +--- org.springframework:spring-context:4.3.4.RELEASE (*)
| \--- org.springframework:spring-core:4.3.4.RELEASE (*)
+--- org.apache.httpcomponents:httpclient:4.5.2
| +--- org.apache.httpcomponents:httpcore:4.4.4
| +--- commons-logging:commons-logging:1.2
| \--- commons-codec:commons-codec:1.9
+--- org.apache.tomcat:tomcat-juli:8.0.36
\--- org.yaml:snakeyaml:1.17
Executing the SampleTomcatSslApplicationTests
you can see the wrong Tomcat Version in Logs:
2016-12-21 10:20:36.713 INFO 11368 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
2016-12-21 10:20:36.714 INFO 11368 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.6
SOLUTION
ext['tomcat.version'] = '8.0.36'
in build scriptUpvotes: 7
Views: 14520
Reputation: 33151
I already replied you on the issue you've created. After you've told us our documentation was wrong, I took the time to build a sample that does exactly what is referenced in the doc.
If that does not work for you, you'll have to be more specific and explain what is wrong in the documentation.
Upvotes: 5