Spring Boot 打包與熱部署的操作方法
熱部署
Spring Boot提供了DevTool
。直接在pom.xml
文件中添加配置。
1.添加依賴(lài)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
2.在maven插件依賴(lài)中新增
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--添加fork--> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
提示:再使用Idea快捷創(chuàng)建Spring Boot項(xiàng)目時(shí)可以勾選Spring Boot DevTools選擇即可。
3.修改Idea設(shè)置
注意:這里要用Idea的debug啟動(dòng),debug啟動(dòng),debug啟動(dòng)。
如果不是前后端分離的項(xiàng)目,在配置文件中添加配置,spring.thymeleaf.cache=false
關(guān)閉頁(yè)面緩存。
jar包
選中maven,點(diǎn)擊運(yùn)行。
控制臺(tái)輸出日志:
打的jar包在項(xiàng)目目錄的target目錄中。
Windows下運(yùn)行:
進(jìn)入jar包目錄,執(zhí)行 java -jar 包名
運(yùn)行成功。
擴(kuò)展:
如果打好了jar包,配置文件中的一些參數(shù)需要修改。如果不想重新打jar包??梢灾匦掳岩环菪碌?code>application.yml配置文件與打好的jar包放在同級(jí)目錄。重新運(yùn)行即可。
驗(yàn)證:
從上述日志中看到,端口為80。這里我重新復(fù)制一份配置文件,將端口改為8088。重新運(yùn)行查看端口。
這里是在Windows下運(yùn)行,在Linux下運(yùn)行差不多,
我們先把jar包,配置文件(可選)上傳至服務(wù)器,運(yùn)行。
啊咧,80端口已經(jīng)被項(xiàng)目占用了。
重新上傳一份8088端口的配置文件。
驗(yàn)證成功以后,還有一個(gè)問(wèn)題,無(wú)論是Windows窗口還是Linux窗口運(yùn)行的jar包,窗口關(guān)閉以后,項(xiàng)目進(jìn)程就結(jié)束了。但是你窗口不會(huì)一直開(kāi)著。
在Linux下我們需要后臺(tái)運(yùn)行。
nohup java -jar springboot-demo2-0.0.1-SNAPSHOT.jar >> srpingboot.log &
解釋?zhuān)汉笈_(tái)運(yùn)行SpringBoot的jar包,并將運(yùn)行java -jar springboot-demo2-0.0.1-SNAPSHOT.jar
命令的輸出日志追加輸出到springboot.log文件中。
劃重點(diǎn):
- >> 輸出到文件,追加操作。
- > 輸出到文件,覆蓋操作。
- & 在Linux命令的末尾加上一個(gè) & 號(hào),將這個(gè)任務(wù)放到后臺(tái)去執(zhí)行
- nohup no hang up(不掛起),用于在系統(tǒng)后臺(tái)不掛斷地運(yùn)行命令,退出終端不會(huì)影響程序的運(yùn)行。
- 這些都是一些Linux命令,可以自己敲一敲測(cè)試即可。
后臺(tái)運(yùn)行,如何關(guān)閉?直接kill。kill -9 pid
(運(yùn)行項(xiàng)目進(jìn)程的PID)
war包
SpringBoot不推薦打war包,但是你說(shuō)我頭鐵,非要打war包咧?可!
修改pom.xml
<!-- 將jar改成war,如果沒(méi)有,則添加--> <packaging>war</packaging>
<!-- 新增 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- 打包運(yùn)行時(shí),排除 --> <scope>provided</scope> </dependency>
注意這兩處的節(jié)點(diǎn)位置。
修改啟動(dòng)類(lèi)
此時(shí)啟動(dòng)類(lèi)中的main方法已經(jīng)失效了。以測(cè)試項(xiàng)目為例
@SpringBootApplication @MapperScan("com.demo.dao") public class SpringbootDemo2Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringbootDemo2Application.class); } public static void main(String[] args) { SpringApplication.run(SpringbootDemo2Application.class, args); } }
繼承SpringBootServletInitializer
類(lèi)并重寫(xiě)configure
方法。注意方法體的書(shū)寫(xiě)。
接下來(lái)就繼續(xù)使用maven打包即可。參數(shù)上面打jar的使用maven方式。
打好的war包是需要放在容器中執(zhí)行的,簡(jiǎn)單的就放在Tomcat中的webapps目錄中。啟動(dòng)Tomcat即可。
war包已經(jīng)打好了,直接丟Tomcat了。
啟動(dòng)Tomcat即可。
但是在實(shí)際開(kāi)發(fā)中,還是不推薦打war包。
到此這篇關(guān)于Spring Boot 打包與熱部署的操作方法的文章就介紹到這了,更多相關(guān)Spring Boot 打包與熱部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java使用Hex編碼解碼實(shí)現(xiàn)Aes加密解密功能示例
這篇文章主要介紹了java使用Hex編碼解碼實(shí)現(xiàn)Aes加密解密功能,結(jié)合完整實(shí)例形式分析了Aes加密解密功能的定義與使用方法,需要的朋友可以參考下2017-01-01Spring?Cloud灰度部署實(shí)現(xiàn)過(guò)程詳解
這篇文章主要為大家介紹了Spring?Cloud灰度部署實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06用intellij Idea加載eclipse的maven項(xiàng)目全流程(圖文)
這篇文章主要介紹了用intellij Idea加載eclipse的maven項(xiàng)目全流程(圖文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12ElasticSearch 動(dòng)態(tài)映射實(shí)戰(zhàn)詳解
這篇文章主要為大家介紹了ElasticSearch 動(dòng)態(tài)映射實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01關(guān)于java關(guān)鍵字this和super的區(qū)別和理解
這篇文章主要給大家介紹了關(guān)于java關(guān)鍵字this和super的區(qū)別和理解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Java聊天室之實(shí)現(xiàn)運(yùn)行服務(wù)器與等待客戶(hù)端連接
這篇文章主要為大家詳細(xì)介紹了Java簡(jiǎn)易聊天室之實(shí)現(xiàn)運(yùn)行服務(wù)器程序與等待客戶(hù)端程序連接功能,文中的示例代碼講解詳細(xì),需要的可以了解一下2022-10-10Java利用Guava?Retry實(shí)現(xiàn)重處理
guava-retrying是谷歌的Guava庫(kù)的一個(gè)小擴(kuò)展,允許為任意函數(shù)調(diào)用創(chuàng)建可配置的重試策略,比如與正常運(yùn)行時(shí)間不穩(wěn)定的遠(yuǎn)程服務(wù)對(duì)話(huà)的函數(shù)調(diào)用。本文將利用其實(shí)現(xiàn)重處理,感興趣的可以了解一下2022-08-08