要求是使用spring boot版本2.2.6.RELEASE,但是tomcat版本应该是9.0.37。
我试图通过将tomcat启动器从spring-boot-starter-web
依赖中排除来做到这一点,如下所示:
<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版本?是否可以通过排除启动来覆盖它?
更新:父pom是公司父pom,而不是spring-boot-starter-parent。根据答案之一,我们可以简单地覆盖tomcat.version属性,但是我的有效pom没有显示它。
如果您不是继承人,spring-boot-starter-parent
我只能猜测您将导入spring-boot-dependencies
某个地方的依赖项管理。
该文档介绍了覆盖tomcat版本所需执行的操作。在导入之前,每个tomcat工件应与覆盖版本一起列出spring-boot-dependencies
。可以在中找到工件列表spring-boot-dependencies
。
使用不同版本的启动器是错误的(您不能在同一应用程序中混合使用两个Spring Boot版本),并且由于依存关系管理始终处于控制状态,因此不会起作用。换句话说,您确实会获得spring-boot-starter-web
版本,2.3.2.RELEASE
但是它带来的所有伪像将由依赖管理(由version定义的tomcat版本2.2.6.RELEASE
)管理。
在您的特定情况下,2.2.9.RELEASE
也可以选择升级到,因为它可以为所需的tomcat版本提供依赖项管理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句