项目开发完毕后,免不了将前后端应用打包,然后部署到生产服务器上运行。本章讨论标准的打包、部署过程。
44.1 打包为 war
也可以选择将 Spring Boot 打包为 war ,然后放置于 Tomcat 的 webapps 目录下加载运行,接下来我们就详细描述下打包为 war 的过程。
我们在教程最一开始初始化应用程序的时候已经选择项目的类型为 war,如果你选择的类型是 jar,那么需要在 pom.xml 文件中修改默认的打包方式,指定打包方式为 war 。
如果你在初始化项目时选择的类型为 war,下面这些工作量都不不需要自己做,初始化工具都已经为你做好了。
<groupId>com.longser.union</groupId>
<artifactId>cloud</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<name>cloud</name>
<description>Union Member Management</description>
然后,由于 Spring Boot 内置了 Tomcat ,所以我们在打包时需要排除内置的 Tomcat ,这样可以避免内置 Tomcat 和 war 包部署运行的 Tomcat 产生冲突。在 pom.xml 中添加如下依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
再然后,还需要继承 SpringBootServletInitializer 类并重写 configure 方法,这是为了告诉 Tomcat 当前应用的入口在哪。
package com.longser.union.cloud;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(CloudApplication.class);
}
}
最后,即可打开 Maven 窗口在 war 插件中执行 war:war 来打包
下面是输出的范例
运行结束后会在 target 目录下生成 war 文件,将该文件放置于 Tomcat 的 webapps 目录下运行即可。
44.2 提示
在正式打包发布前,需要关闭所有应该关闭的内容、删除需要删除的内容。
版权说明:本文由北京朗思云网科技股份有限公司原创,向互联网开放全部内容但保留所有权力。