一:打JAR包
在工程的pom.xml中添加以下依賴
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
我們目前的工程採用的是jar 的打包方式,所以我們在執行package 命令後,會產生一個jar 包。
我們進入到這個目錄用壓縮軟件打開此jar 包,其中我們發現了一個叫lib 的文件夾,打開lib 文件夾發現此文件夾下全是工程依賴的jar 包,甚至還有tomcat。這種包含有jar 包的jar包,我們稱之爲fatJAR( 胖jar 包)
由於fatJAR 本身就包括tomcat , 我們就不需要另外部署了,直接在命令行就可以把我們的應用啓動起來,在命令行,進入到jar 包所在的目錄,我們可以通過以下java –jar命令來執行此jar 包。在控制檯會出現啓動信息,在瀏覽器訪問程序
二:打WAR包
spring-boot 默認提供內嵌的tomcat,所以打包直接生成jar 包,用java -jar 命令就可以啓動。但是,有時候我們更希望一個tomcat 來管理多個項目,這種情況下就需要項目是war 格式的包而不是jar 格式的包。
我們按照以下步驟完成對工程的改造
(1)修改pom.xml
將打包方式修改爲war
<packaging>war</packaging>
添加依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
spring-boot-starter-tomcat 是原來被傳遞過來的依賴,默認會打到包裏,所以我們再次引入此依賴,並指定依賴範圍爲provided,這樣tomcat 相關的jar就不會打包到war 裏了.
(2)添加ServletInitializer
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilderapplication) {
return application.sources(Application.class);
}
}
由於我們採用web3.0 規範,是沒有web.xml 的,而此類的作用與web.xml相同。
(3)運行package 打包命令生成war 包
生成後將war 包放入tomcat,啓動tomcat,測試完成的功能是否可以使用。