【发布时间】:2020-11-16 11:51:03
【问题描述】:
要求使用 spring boot 版本 2.2.6.RELEASE 但是 tomcat 版本应该是 9.0.37。
我尝试通过从 spring-boot-starter-web 依赖项中排除 tomcat 启动器来做到这一点:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
并单独添加spring-boot-starter-tomcat 9.0.37 tomcat 版本:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.2.RELEASE</version>
</dependency>
但是,即使这样做,版本也不会被覆盖,并且会使用以下内容:
Mar 11 2020 09:31:38 UTC
Apache Tomcat/9.0.33
9.0.33.0
我们是否需要做任何其他事情来覆盖 tomcat 版本? 是否可以通过排除started来覆盖它?
更新: 父 pom 是企业父 pom,而不是 spring-boot-starter-parent。根据其中一个答案,我们可以简单地覆盖 tomcat.version 属性,但是我的有效 pom 没有显示它。
【问题讨论】:
-
不要。永远不要混合不同版本的框架的模块,这会导致问题。只需按照参考指南here 中的说明更改版本,以获取要覆盖的版本属性列表,请参阅this appendix
-
太好了,我认为这就是这样做的方法。今天就试试看!
-
它只是不工作 :-( 在某处是否有一个示例应用程序演示?
标签: java spring spring-boot tomcat