在java中怎么将SpringBoot应用程序打包和部署成WAR文件?部署方法分享!

2021-09-03 09:48:28 浏览数 (2251)

将基于 Maven 的 Spring Boot 应用程序打包为 WAR 文件

要更改使用Spring Initializr或Vaadin Start工具生成的基于Maven的 Spring Boot 应用程序中的打包,请在 pom.xml 文件中进行以下更改:

1、修改<packaging>元素如下:

XML:

<packaging>war</packaging>

2. 如果您计划部署到与 Apache Tomcat 不同的服务器,请执行以下操作:

a) 将 Servlet API 依赖项添加到项目中。确保使用与您的项目匹配的版本。例如,在Vaadin应用程序的情况下:

XML:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

b)如果您使用的是Spring MVC,spring-boot-starter-tomcat则从 中排除依赖项,或者如果您使用的是Vaadin则从该依赖项中排除。例如:spring-boot-starter-web dependencyvaadin-spring-boot-starter

XML:

<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-spring-boot-starter</artifactId>
    <exclusions>
        ...
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 可选:如果您想简化 WAR 文件的名称并始终构建一个同名但没有版本号的文件,请在该​<build>​部分添加以下内容:

XML:

<finalName>${project.artifactId}</finalName>

4. 通过运行mvn package命令构建和打包应用程序。如果您使用 Vaadin,请启用生产配置文件 ( mvn package -P production)。您可以在 Maven 项目内的target/目录中找到 WAR 文件。

将 WAR 文件部署到 Apache Tomcat

要将上一节中配置的应用程序部署到 Apache Tomcat 的本地实例:

  1. 项目网站下载 Apache Tomcat 。确保下载正确的版本,具体取决于您的应用程序使用的 Java 和 Servlet API 版本。例如,对于 Vaadin 应用程序,下载 Apache Tomcat 版本 9
  2. 提取下载的文件。
  3. 通过运行可以在Apache Tomcat 安装目录内的bin/目录中找到的start.sh或start.bat脚本来启动服务器。您可能必须向bin/目录中的脚本文件添加执行权限。例如,在类 Unix 操作系统中,运行.chmod +x bin/*.sh
  4. 将 WAR 文件从Maven 项目内的target/目录复制到Apache Tomcat 安装目录内的webapps/目录。
  5. 该应用程序应自动部署并在http://localhost:8080/your-war-file-name 上提供。如果要部署到上下文的根 ( http://localhost:8080/ ),请使用 ROOT.war 。

将 WAR 文件部署到 Eclipse Jetty

要将先前配置的应用程序部署到 Eclipse Jetty 的本地实例:

  1. 项目网站下载 Eclipse Jetty  。确保下载正确的版本,具体取决于您的应用程序使用的 Java 和 Servlet API 版本。例如,对于 Vaadin 应用程序,下载 Eclipse Jetty 9。
  2. 提取下载的文件。
  3. 如果您下载了 Eclipse Jetty 10,请通过java -jar start.jar --add-module=server,http,deploy在 Eclipse Jetty 安装目录中运行来配置服务器。
  4. 通过在 Eclipse Jetty 安装目录内的bin/目录中运行start.sh start 来启动服务器。您可能必须通过运行来为bin/目录中的脚本文件添加执行权限。chmod +x bin/*.sh
  5. 将 WAR 文件从Maven 项目内的target/目录复制到Eclipse Jetty 安装目录内的web apps /目录。
  6. 应用程序应自动部署并在此处可用。如果要部署到上下文 root ,请使用 root.war 。