传统的Web应用在发布之前通常会打成War包,然后将War包部署到Tomact等容器中使用,通过前面学习可知,SpringBoot应用既能以Jar包的形式部署,又能以War包的形式部署。

(一)JAR包

在Eclipse中只需执行Maven的package命令就可以将项目打成一个jar包,如下图所示:

Spring Boot 打包工具 springboot打包webapp_jar包


由于项目在jar包中已经包含了Tomcat,所以我们不需要另外部署Tomcat就可以在命令行中将项目启动起来:

Spring Boot 打包工具 springboot打包webapp_子类_02


从图示窗口可以看出SpringBoot项目的启动信息。执行成功后,即可通过浏览器对项目进行访问。

Spring Boot 打包工具 springboot打包webapp_jar包_03


(二)WAR包

   虽然通过SpringBoot内嵌的Tomcat可以直接运行所打的jar包,但是有时候我们希望通过外部的tomcat来管理多个项目。由于jar包在Tomcat中是无法运行的,所以将项目打成War包的形式。

1、将项目的pom.xml中元素内的jar修改为war,并在文件中添加Tomcat的依赖配置。其修改和添加的配置信息如下:

Spring Boot 打包工具 springboot打包webapp_SpringBoot_04


上述配置代码中spring-boot-starter-tomcat是SpringBoot自带的Tomcat依赖,默认会被打到项目的lib包中。我们将其依赖范围设置为provided时,将产生一个可执行的War包,在包中lib-provided目录会有provided依赖。这样不仅可以部署到Servlet容器启动项目。还可以通过命令行执行java-jar运行此应用。

2、创建SpringBootServletInitializer子类,并覆盖其配置方法

   要产生一个可部署的war包,还需要提供一个SpringBootServletInitializer子类,并覆盖它的configure()方法。

通常我们可以采用两种方式:

①是把应用的主类(引导类)修改为继承SpringBootServletlnitializer 的类,并覆盖configure()方法;

②是创建一个继承 了SpringBootServletinitializer的类,并覆盖configure()方法。以创建SpringBootServletlnitializer子类的方式为例,其子类实现代码如图所示:

Spring Boot 打包工具 springboot打包webapp_SpringBoot_05


3、使用 mvn package 命令打包:

进入项目工程文件路径下:

Spring Boot 打包工具 springboot打包webapp_Spring Boot 打包工具_06


打包成功:

Spring Boot 打包工具 springboot打包webapp_SpringBoot_07


4、使用java -jar命令来运行该实例:

Spring Boot 打包工具 springboot打包webapp_子类_02


从图示窗口可以看出SpringBoot项目的启动信息。执行成功后,即可通过浏览器对项目进行访问。

Spring Boot 打包工具 springboot打包webapp_jar包_03