1. 程式人生 > 其它 >檢視和指定SpringBoot內嵌Tomcat的版本

檢視和指定SpringBoot內嵌Tomcat的版本

檢視當前使用的Tomcat版本號#

Maven Repository中檢視#

比如我們需要查Spring Boot 2.1.4-RELEASE的內嵌Tomcat版本, 可以開啟連結:

Copy
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-tomcat/2.1.4.RELEASE

如下圖, 紅框標記的就是tomcat的版本。

檢視dependepency#

透過IDE#

目前大家主要使用IDEA來進行開發,下面是IDEA檢視Tomcat的版本:

透過命令列#

Gradle可以採用以下命令列印依賴項:

Copy
./gradlew dependencies

資料結果示例:

Copy
...
|    +--- org.springframework.boot:spring-boot-starter-tomcat:2.1.0.RELEASE
|    |    +--- javax.annotation:javax.annotation-api:1.3.2
|    |    +--- org.apache.tomcat.embed:tomcat-embed-core:9.0.12
|    |    +--- org.apache.tomcat.embed:tomcat-embed-el:9.0.12
|    |    \--- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.12
|    |         \--- org.apache.tomcat.embed:tomcat-embed-core:9.0.12
...

Maven可以採用以下命令列印依賴項:

Copy
mvn dependency:tree > output.txt   # 輸出到檔案裡

指定SpringBoot專案內嵌的Tomcat版本#

直接升級SpringBoot的版本#

因為SpringBoot內嵌的Tomcat會伴隨SpringBoot的升級而升級,所以可以根據需要選擇合適的Tomcat版本,這種特別需要升級Tomcat版本時使用,當然還是要根據情況,因為升級SpringBoot的版本也是有成本的。

排除SpringBoot的Tomcat,指定Tomcat版本#

有時候我們需要在特定情況下使用特定的Tomcat版本,這時候總不能因為Tomcat就改變SpringBoot的版本,所以可以採用排除SpringBoot中的Tomcat包,然後手動指定Tomcat的版本,當然還要引入Tomcat相關的包。

Gradle的配置
Copy
compile('org.springframework.boot:spring-boot-starter-web') {
    exclude module: "spring-boot-starter-tomcat"
}
compile 'org.apache.tomcat.embed:tomcat-embed-core:+'
compile 'org.apache.tomcat.embed:tomcat-embed-el:+'
compile 'org.apache.tomcat.embed:tomcat-embed-logging-juli:+'
compile 'org.apache.tomcat.embed:tomcat-embed-websocket:+'

如果不指定版本,則會使用最新的Tomcat版本, 否則直接指定對應的版本號。

Maven的配置

在 pom.xml檔案裡面新增一個標籤<properties>,新增期望的版本。

Copy
<tomcat.version>8.0.30</tomcat.version>

新增必要的Jar包:

Copy
<dependency> 
   <groupId>org.apache.tomcat</groupId> 
   <artifactId>tomcat-juli</artifactId> 
   <version>${tomcat.version}</version> 
 </dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-logging-juli</artifactId>
    <version>${tomcat.version}</version>
</dependency>