在 Spring Boot 上更改嵌入式 tomcat 版本
Posted
技术标签:
【中文标题】在 Spring Boot 上更改嵌入式 tomcat 版本【英文标题】:Change embedded tomcat version on spring boot 【发布时间】:2020-10-22 10:39:00 【问题描述】:我想将我的嵌入式 tomcat 从 8.5.6 降级到 8.5.51。
在我的日志中,我可以找到以下信息:
“spring-boot-starter-tomcat/1.4.3.RELEASE/spring-boot-starter-tomcat-1.4.3.RELEASE.jar” ".m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.6/tomcat-embed-core-8.5.6.jar"
但是在我的 pom.xml 文件中,我没有对 tomcat 的任何引用。
执行 grep 命令,没有返回 'spring-boot-starter-parent' 或 'spring-boot-starter-tomcat'。
我可以在哪里以及如何明确添加我想要的 tomcat 版本?
【问题讨论】:
你能分享你的 pom.xml 吗? 【参考方案1】:您可以通过查看依赖关系树来检查该依赖关系的来源:
mvn dependency:tree -Dverbose
More info here.
另一种选择是在 pom.xml
文件中显式设置版本或将其从包含它的依赖项中排除:
<dependency>
<groupId>a.group</groupId>
<artifactId>a.artifact</artifactId>
<version>a.version</version>
<exclusions>
<exclusion>
<artifactId>tomcat</artifactId>
<groupId>tomcat-group</groupId>
</exclusion>
</exclusions>
<dependency>
More info here.
【讨论】:
【参考方案2】:如果您的项目或您的依赖项之一需要覆盖 由父 POM 管理的传递依赖,只需添加一个 该依赖项的版本属性。为了让这个规则对父母起作用 POM 必须为它所依赖的所有依赖项定义版本属性 管理(spring-boot-starter-parent 执行此操作)。
<properties>
<tomcat.version>8.5.51</tomcat.version>
</properties>
【讨论】:
以上是关于在 Spring Boot 上更改嵌入式 tomcat 版本的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot 应用程序的嵌入式 untertow 中禁用 HTTP TRACE
如何在嵌入式 tomcat 服务器上部署 Spring Boot Web 应用程序,来自 Spring Boot 本身
重新加载Spring Boot 上的更改,而无需重新启动服务