项目开发完毕后,免不了将前后端应用打包,然后部署到生产服务器上运行。本章讨论标准的打包、部署过程。

44.1 打包为 war

也可以选择将 Spring Boot 打包为 war ,然后放置于 Tomcat 的 webapps 目录下加载运行,接下来我们就详细描述下打包为 war 的过程。

我们在教程最一开始初始化应用程序的时候已经选择项目的类型为 war,如果你选择的类型是 jar,那么需要在 pom.xml 文件中修改默认的打包方式,指定打包方式为 war 。

如果你在初始化项目时选择的类型为 war,下面这些工作量都不不需要自己做,初始化工具都已经为你做好了。

  1. <groupId>com.longser.union</groupId>
  2. <artifactId>cloud</artifactId>
  3. <version>1.0.0</version>
  4. <packaging>war</packaging>
  5. <name>cloud</name>
  6. <description>Union Member Management</description>

然后,由于 Spring Boot 内置了 Tomcat ,所以我们在打包时需要排除内置的 Tomcat ,这样可以避免内置 Tomcat 和 war 包部署运行的 Tomcat 产生冲突。在 pom.xml 中添加如下依赖即可:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-tomcat</artifactId>
  4. <scope>provided</scope>
  5. </dependency>

再然后,还需要继承 SpringBootServletInitializer 类并重写 configure 方法,这是为了告诉 Tomcat 当前应用的入口在哪。

  1. package com.longser.union.cloud;
  2. import org.springframework.boot.builder.SpringApplicationBuilder;
  3. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  4. public class ServletInitializer extends SpringBootServletInitializer {
  5. @Override
  6. protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  7. return application.sources(CloudApplication.class);
  8. }
  9. }

最后,即可打开 Maven 窗口在 war 插件中执行 war:war 来打包
image.png
下面是输出的范例
image.png
运行结束后会在 target 目录下生成 war 文件,将该文件放置于 Tomcat 的 webapps 目录下运行即可。

44.2 提示

在正式打包发布前,需要关闭所有应该关闭的内容、删除需要删除的内容。

版权说明:本文由北京朗思云网科技股份有限公司原创,向互联网开放全部内容但保留所有权力。