1. 程式人生 > >spring boot2 (33)-相容 jar包和war包部署

spring boot2 (33)-相容 jar包和war包部署

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容器啟動時,它會自動配置當前專案。

@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);  
	}
}
生成war包

此時,執行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命令啟動