如何在传统 tomcat webapps 文件夹中部署 spring 启动 MVC 应用程序?

How to deploy a spring boot MVC application in traditional tomcat webapps folder?

我在 springboot springmvc with gradle 示例之后创建了一个简单的 spring mvc 应用程序。

结构如下。 src/main/java - 这是所有代码库所在的位置。 src/main/resources - 这是所有 resources/templates 所在的位置。


    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;

    @SpringBootApplication
    public class Application {

        public static void main(String[] args) {         
            SpringApplication.run(Application.class, args);
        }

    }

只需编写上面的 class 并使用零配置,我就能够启动我的 spring-mvc web 应用程序(这非常酷)。 (通过命令 gradlew build 和 gradlew bootrun) 但是来自传统的 Web 应用程序开发和部署背景,我想知道如何从中创建一个 war 文件并将其部署到 tomcat webapps 文件夹中。

此外,所有新资源(如 js 文件、css 等)的保存位置。我们通常会有一个 WEB-INF 文件夹来保存它们,但是在这里做什么。

meskobalazs 在构建 war 部署时回答了您关于资源的问题(但请注意 src/main/webapp 未被读取为 jar 部署,在这种情况下,您必须将其添加为资源)。

当您想将 Spring-Boot 应用程序更改为 Web 部署时,您基本上必须做两件事:

  • 将项目的包装从 jar 转换为 war
  • 将内嵌的依赖tomcat改为provided

可以在 Spring-Boot documentation site

上找到更多详细信息

Spring 引导包括 Tomcat 容器。

您必须删除外部 Tomcat 才能部署您的项目

如果你使用的是Maven项目你需要修改pom.xml 包装更改为 war,如下所示

<packaging>war</packaging>

并且如果您正在使用 Gradle 项目您需要修改 build.gradle 如下

apply plugin: 'war'

构建项目后,它将创建 war 文件,因此您可以轻松部署到任何 tomcat 服务器 webapps 文件夹