SpringBoot中打war包需要注意事項
最近在做一個項目,遇到了項目打成 war 包的一個問題,項目創(chuàng)建時選擇的時 jar 包方式,后因項目部署要求,需要打成 war 包部署,遇到很多坑,在此做一下記錄
一、修改打包方式
原:
<version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging>
改后:
<version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>
二、排除內(nèi)置 Tomcat
原:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
改后:
<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>
使用 排除內(nèi)置服務(wù)器
三、添加 Tomcat 依賴
用于編譯和測試開發(fā),兩種方式
1、
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- 該包只在編譯和測試的時候使用 --> <scope>provided</scope> </dependency>
2、
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.5.34</version> <!-- 該包只在編譯和測試的時候使用 --> <scope>provided</scope> </dependency>
四、改變項目的構(gòu)造方式
原:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
改后:
<build> <!-- 一般為你的項目名,與配置文件中的context-path保持一致 --> <finalName>demo</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>src/main/resources/lib</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> </webResources> </configuration> </plugin> </plugins> </build>
五、修改啟動類
啟動類繼承 SpringBootServletInitializer,并實現(xiàn) configure() 方法
原:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
改后:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableScheduling public class DemoApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(DemoApplication.class); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
六、修改配置文件
修改 application.yml 文件,標(biāo)明項目項目上下文路徑 context-path
server: servlet: context-path: /demo
七、修改靜態(tài)資源引入方式
我們使用 thymeleaf 模板引擎,引入 css、js 文件時,需要加上項目上下文路徑
原:
<link rel="stylesheet" href="layui/css/layui.css" rel="external nofollow" media="all">
改后:
<link rel="stylesheet" th:href="@{/layui/css/layui.css}" rel="external nofollow" media="all">
我們需要使用 th:href="@{}" rel="external nofollow" 的方式,去引入靜態(tài)資源文件
八、測試
我們可以不使用項目的啟動類啟動項目,我們自己添加一個服務(wù)器來啟動項目
就想普通的 SSM 項目,添加一個 Tomcat 啟動項目,如果能夠成功啟動項目,并能正常訪問,那么打成 war 包也能夠正常運行
到此這篇關(guān)于SpringBoot中打war包需要注意事項的文章就介紹到這了,更多相關(guān)SpringBoot打war包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea2019導(dǎo)入maven項目中的某些問題及解決方法
這篇文章主要介紹了idea2019導(dǎo)入maven項目中的某些問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08Java中的StackOverflowError錯誤問題及解決方法
這篇文章主要介紹了Java中的StackOverflowError錯誤,在本文中,我們仔細研究了StackOverflower錯誤,包括Java代碼如何導(dǎo)致它,以及我們?nèi)绾卧\斷和修復(fù)它,需要的朋友可以參考下2022-07-07SpringBoot集成RabbitMQ實現(xiàn)用戶注冊的示例代碼
這篇文章主要介紹了SpringBoot集成RabbitMQ實現(xiàn)用戶注冊的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Java concurrency集合之ConcurrentSkipListSet_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了Java concurrency集合之ConcurrentSkipListSet的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06