【问题标题】:How to know which tomcat version embedded in spring boot如何知道spring boot中嵌入了哪个tomcat版本
【发布时间】:2016-05-06 23:23:54
【问题描述】:

我在项目中使用了弹簧靴。它有内置的tomcat服务器。我找到了一个罐子spring-boot-starter-tomcat-1.2.5.RELEASE.jar。我需要在linux服务器上做一些tomcat相关的配置。

我怎样才能知道其中使用了哪个tomcat版本?

【问题讨论】:

    标签: java maven tomcat spring-boot


    【解决方案1】:

    您还可以通过查看有效的 pom.不离开 IDE 来检查版本。

    例如,如果您使用的是 IntelliJ,则可以通过右键单击 pom.xml > Maven > Show effective POM 来查看有效的 pom。

    ...或从命令行发出mvn help:effective-pom

    【讨论】:

      【解决方案2】:

      【讨论】:

      【解决方案3】:

      或对于 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

      【讨论】:

        【解决方案4】:

        你可以看http://mvnrepository.com/

        http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-tomcat/1.2.5.RELEASE

        下面有Compile Dependencies 部分,您可以看到它使用Tomcat 8.0.23

        【讨论】:

        • 谢谢。如果我在 linux 中搜索 where tomcat 找不到结果。为什么?
        • 你的意思是tomcat在哪里,对吧? Spring Boot 中嵌入的 tomcat 并不是作为应用程序部署在操作系统中的独立 tomcat。它只是一个在 pom.xml 中作为依赖项添加的 jar。 whereis 在文件系统中的一些流行位置($PATH、man 路径、源文件夹)中查找文件,而不是 ~/.m2/repository 中的 jars。
        【解决方案5】:

        可以在依赖树中查看所有依赖的版本。

        为此:

        • 进入pom.xml目录
        • 运行以下命令:

          $ 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] ------------------------------------------------------------------------
          

        您将能够查看与该依赖项关联的所有依赖项和版本。

        【讨论】:

          【解决方案6】:

          在 Eclipse IDE 中:

          1. 打开你的 pom.xml
          2. 转到“有效 POM”标签
          3. 搜索“tomcat”
          4. 找到<tomcat.version>行,例如:<tomcat.version>9.0.27</tomcat.version>

          【讨论】:

            【解决方案7】:

            对于那些使用 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

            【讨论】:

              【解决方案8】:

              考虑您项目的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>
              

              这样,我们可以立即搜索所有默认值。

              【讨论】:

                【解决方案9】:

                通过控制台打印依赖关系树

                mvn dependency:tree
                

                【讨论】:

                • 这和上面的另一个答案是一样的,一年半前发布的。
                猜你喜欢
                • 2021-02-28
                • 2020-10-22
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-07-04
                • 2018-08-17
                • 1970-01-01
                • 2018-05-28
                相关资源
                最近更新 更多