SpringBoot項目如何打war包問題詳解

1、pom.xml配置修改

<packaging>jar</packaging>
//修改為
<packaging>war</packaging>

2、pom文件添加如些依賴

<!--添加servlet-api的依賴,用來打war包 -->
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<scope>provided</scope>
</dependency>

3、排除springboot內置的tomcat幹擾

<!--最終打成war包,排除內置的tomcat-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<exclusions>
		<exclusion>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</exclusion>
	</exclusions>
</dependency>

4、改造啟動類

如果是war包發佈,需要增加SpringBootServletInitializer子類,並重寫其configure方法,
或者將main函數所在的類繼承SpringBootServletInitializer,並重寫configure方法
當時打包為war時上傳到tomcat服務器中訪問項目始終報404錯就是忽略瞭這個步驟!!!

改造之前:

@SpringBootApplication
public class MainApp {
	public static void main(String[] args) {
		SpringApplication.run(MainApp.class,args);
	}
}

改造之後:

@SpringBootApplication
public class SpringBootMytestApplication extends SpringBootServletInitializer {
	public static void main(String[] args) {
		SpringApplication.run(SpringBootMytestApplication.class, args);
	}
	
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		// 註意這裡要指向原先用main方法執行的Application啟動類
		return builder.sources(SpringBootMytestApplication.class);
	}
}

這種改造方式也是官方比較推薦的方法

5、pom文件中不要忘瞭maven編譯插件

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

打包操作:

在這裡插入圖片描述


在這裡插入圖片描述

war包打包成功。

如果想用idea中的外置tomcat驗證war包是否正常,方法如下:

在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

如果不改成“/” 訪問時路徑前要加上此路徑內容,如下圖。

在這裡插入圖片描述
在這裡插入圖片描述

驗證成功

到此這篇關於SpringBoot項目如何打war包問題詳解的文章就介紹到這瞭,更多相關SpringBoot項目打war包內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: