当前位置: 首页 > 面试题库 >

未嵌入tomcat的spring boot war

东郭宏深
2023-03-14
问题内容

我想创建一个不带maven嵌入式tomcat的war文件。这是我pom的相关部分

...
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.6.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!-- Add tomcat only if I want to run directly -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
...

如果我运行mvn软件包,我会大战一场,其中tomcat * .jar位于提供的lib文件夹中,但仍位于lib文件夹中。我读了build-tool-plugins-maven-packaging,但是找不到问题所在。

我知道一个主要想法是将其作为应用程序运行,无论我们的客户如何将其部署在他的应用程序服务器上。


问题答案:

根据Deinum的提示,我排除了tomcat的缺陷。

使用下面的pom.xml(相关代码段),a maven clean package可以得到我想要的结果。

...
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.6.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!-- Add tomcat only if I want to run directly -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
...


 类似资料:
  • 尝试启动Tomcat时出现一个通用错误。下面是StackTrace: 下面是POM:http://maven.apache.org/maven-v4_0_0.xsd“>4.0.0 edu.rutgers spring-social-orcid-client-boot spring-social-orcid-client-boot 1.1.0 多谢了。

  • 我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?

  • 这是个无用的主意吗?

  • 问题内容: 我需要在Tomcat中启动Hazelcast,而无需单独的war文件。因此,将hazelcast.jar放入lib文件夹中的hazelczast.xml某处…接下来呢?还是不可能? 问题答案: 第一步是好的,只需将Hazelcast lib和配置放在Tomcat的libs文件夹中。接下来,如果您不需要单独的WAR文件,则是构建一个小的Valve类来启动/关闭Hazelcast节点。问题

  • 我正在运行一个Spring web应用程序,但未能在最新的Eclipse中使用Tomcat7 Maven插件执行嵌入式tomcat,在windows上运行goal,但未能将其配置为运行Tomcat8.5,它一直查找Tomcat7文件夹。 tomcat7:run-war使用嵌入式Tomcat服务器将当前项目作为打包的web应用程序运行。 我找到了答案或这个答案,但它对部署tomcat很好。 这个项目

  • 使用Spring Boot和启用LoadTimeWeaving的嵌入式tomcat,缓存方面在运行时没有任何影响,但我们看到在日志中编织的情况很好。 下面是配置,LoadTimeWeave与模式一起启用,作为用于缓存的AsheJ Spring代理-javaagent:..//Spring-仪表-4.3.3。释放。罐子 原木 围绕这个有很多讨论。编织发生在RestartClassLoader上,不确