spring boot2 (33)-相容 jar包和war包部署
阿新 • • 發佈:2019-02-07
spring boot預設部署方式是jar包,但有時候可能運維使用的是tomcat之類的容器,並要求提交war包。本篇將介紹jar包和war通用的配置方式。
pom.xml
修改打包方式為war包
<packaging>war</packaging>
spring boot中已經集成了spring-boot-starter-tomcat內建容器,這裡覆蓋配置主要是為了設定provided,意思是打包的時候不要將它打進war包,因為我們要在外接的tomcat中執行。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
啟動類
SpringBootServletInitializer提供了servlet支援,當tomcat容器啟動時,它會自動配置當前專案。
生成war包@SpringBootApplication public class Run extends SpringBootServletInitializer { protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Run.class); } public static void main(String[] args) throws Exception { SpringApplication.run(Run.class, args); } }
此時,執行mvn package打包命令時即會生成war包,可以放入tomcat中使用。對開發不會有任何影響,而且支援spring boot中的靜態目錄,如static等
相容jar包
spring boot中習慣是用java -jar命令執行jar包的,而war包則不能這樣。不過spring boot提供了一個打包外掛
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
該外掛可參考第14篇,用於生成可用java -jar命令執行的包。此時,打成的war包即可以放tomcat中使用,也可以直接以java -jar命令啟動