【发布时间】:2016-05-06 23:23:54
【问题描述】:
我在项目中使用了弹簧靴。它有内置的tomcat服务器。我找到了一个罐子spring-boot-starter-tomcat-1.2.5.RELEASE.jar。我需要在linux服务器上做一些tomcat相关的配置。
我怎样才能知道其中使用了哪个tomcat版本?
【问题讨论】:
标签: java maven tomcat spring-boot
我在项目中使用了弹簧靴。它有内置的tomcat服务器。我找到了一个罐子spring-boot-starter-tomcat-1.2.5.RELEASE.jar。我需要在linux服务器上做一些tomcat相关的配置。
我怎样才能知道其中使用了哪个tomcat版本?
【问题讨论】:
标签: java maven tomcat spring-boot
您还可以通过查看有效的 pom.不离开 IDE 来检查版本。
例如,如果您使用的是 IntelliJ,则可以通过右键单击 pom.xml > Maven > Show effective POM 来查看有效的 pom。
...或从命令行发出mvn help:effective-pom
【讨论】:
通过http://search.maven.org/,在https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/1.2.5.RELEASE/spring-boot-dependencies-1.2.5.RELEASE.pom:
<tomcat.version>8.0.23</tomcat.version>
【讨论】:
或对于 Gradle,使用
通过控制台打印依赖关系树./gradlew dependencies
输出中的示例 sn-p:
...
| +--- 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
...
在我上面的例子中是tomcat版本9.0.12
【讨论】:
你可以看http://mvnrepository.com/:
http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-tomcat/1.2.5.RELEASE
下面有Compile Dependencies 部分,您可以看到它使用Tomcat 8.0.23。
【讨论】:
where tomcat 找不到结果。为什么?
可以在依赖树中查看所有依赖的版本。
为此:
运行以下命令:
$ mvn 依赖:树
[INFO] Scanning for projects...
enter code here
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building {Project Name}
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ spring-mvc-logback ---
[INFO] com.sj.common:spring-mvc-logback:war:1.0-SNAPSHOT
[INFO] +- org.springframework:spring-core:jar:4.1.6.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.1.6.RELEASE:compile
[INFO] | +- org.springframework:spring-beans:jar:4.1.6.RELEASE:compile
[INFO] | +- org.springframework:spring-context:jar:4.1.6.RELEASE:compile
[INFO] | | \- org.springframework:spring-aop:jar:4.1.6.RELEASE:compile
[INFO] | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | +- org.springframework:spring-expression:jar:4.1.6.RELEASE:compile
[INFO] | \- org.springframework:spring-web:jar:4.1.6.RELEASE:compile
[INFO] +- org.slf4j:jcl-over-slf4j:jar:1.7.12:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.12:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.1.3:compile
[INFO] | \- ch.qos.logback:logback-core:jar:1.1.3:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.937 s
[INFO] Finished at: 2015-06-19T19:17:54+08:00
[INFO] Final Memory: 13M/308M
[INFO] ------------------------------------------------------------------------
您将能够查看与该依赖项关联的所有依赖项和版本。
【讨论】:
在 Eclipse IDE 中:
<tomcat.version>行,例如:<tomcat.version>9.0.27</tomcat.version>
【讨论】:
对于那些使用 PCF 即 cloudfoundry 的人
我通常保持提供的 spring boot tomcat 依赖 这意味着我本地的 tomcat 版本可能会略有不同。
java buildpack 包含 tomcat 版本
https://github.com/cloudfoundry/java-buildpack/releases
例如java buildpack 4.19.1 自带 Openjdk 1.8.0_212 和 tomcat 9.0.19
【讨论】:
考虑您项目的pom.xml 的以下 sn-p,其中默认父级是 spring-boot-starter-parent
你的项目 pom.xml
<!--Spring boot parent project -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
接下来查找 spring-boot-starter-parent 项目的 pom.xml 以查看依赖项,它以 spring-boot-dependencies 作为其父项。如果使用 IntelliJ/Vscode 等现代 IDE 可以轻松地在 IDE 中遍历。
spring-boot-starter-parent pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.5</version>
</parent>
再上一层,即到spring-boot-dependencies,它还没有父级,在属性下列出了所有默认值。下面的示例 sn-p 包含仅显示 tomcat 的非详尽列表。
spring-boot-dependencies pom.xml
<properties>
<!-- Other dependencies -->
<tomcat.version>9.0.45</tomcat.version>
<!-- Other dependencies -->
</properties>
这样,我们可以立即搜索所有默认值。
【讨论】:
通过控制台打印依赖关系树
mvn dependency:tree
【讨论】: