怎么将 SpringBoot web 应用程序部署为 JAR 或 WAR 文件?
-
通常,我们将 web 应用程序打包成 WAR 文件,然后将它部署到另外的服务器上。这样做使得我们能够在相同的服务器上处理多个项目。当 CPU 和内存有限的情况下,这是一种最好的方法来节省资源。
然而,事情发生了转变。现在的计算机硬件相比起来已经很便宜了,并且现在的注意力大多转移到服务器配置上。部署中对服务器配置的一个细小的失误都会导致无可预料的灾难发生。
Spring 通过提供插件来解决这个问题,也就是 spring-boot-maven-plugin 来打包 web 应用程序到一个额外的 JAR 文件当中。为了引入这个插件,只需要在 pom.xml 中添加一个 plugin 属性:
1 <plugin> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-maven-plugin</artifactId> 4 </plugin>
有了这个插件,我们会在执行 package 步骤后得到一个 JAR 包。这个 JAR 包包含所需的所有依赖以及一个嵌入的服务器。因此,我们不再需要担心去配置一个额外的服务器了。
我们能够通过运行一个普通的 JAR 包来启动应用程序。
注意一点,为了打包成 JAR 文件,pom.xml 中的 packgaing 属性必须定义为 jar:
<packaging>jar</packaging>
如果我们不定义这个元素,它的默认值也为 jar。
如果我们想构建一个 WAR 文件,将 packaging 元素修改为 war:
<packaging>war</packaging>
并且将容器依赖从打包文件中移除:
1 <dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-tomcat</artifactId> 4 <scope>provided</scope> 5 </dependency>
执行 Maven 的 package 步骤之后,我们得到一个可部署的 WAR 文件。