8.Spring Boot 打包與熱部署
熱部署
Spring Boot提供了DevTool
。直接在pom.xml
檔案中新增配置。
-
新增依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
-
在maven外掛依賴中新增
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--新增fork--> <configuration> <fork>true</fork> </configuration> </plugin> </plugins> </build>
提示:再使用Idea快捷建立Spring Boot專案時可以勾選Spring Boot DevTools選擇即可。
-
修改Idea設定
注意:這裡要用Idea的debug啟動,debug啟動,debug啟動。
如果不是前後端分離的專案,在配置檔案中新增配置,spring.thymeleaf.cache=false
關閉頁面快取。
jar包
選中maven,點選執行。
控制檯輸出日誌:
打的jar包在專案目錄的target目錄中。
Windows下執行:
進入jar包目錄,執行 java -jar 包名
執行成功。
擴充套件:
如果打好了jar包,配置檔案中的一些引數需要修改。如果不想重新打jar包。可以重新把一份新的application.yml
配置檔案與打好的jar包放在同級目錄。重新執行即可。
驗證:
從上述日誌中看到,埠為80。這裡我重新複製一份配置檔案,將埠改為8088。重新執行檢視埠。
這裡是在Windows下執行,在Linux下執行差不多,
我們先把jar包,配置檔案(可選)上傳至伺服器,執行。
啊咧,80埠已經被專案佔用了。
重新上傳一份8088埠的配置檔案。
驗證成功以後,還有一個問題,無論是Windows視窗還是Linux視窗執行的jar包,視窗關閉以後,專案程式就結束了。但是你視窗不會一直開著。
在Linux下我們需要後臺執行。
nohup java -jar springboot-demo2-0.0.1-SNAPSHOT.jar >> srpingboot.log &
解釋:後臺執行SpringBoot的jar包,並將執行java -jar springboot-demo2-0.0.1-SNAPSHOT.jar
命令的輸出日誌追加輸出到springboot.log檔案中。
劃重點:
- >> 輸出到檔案,追加操作。
- > 輸出到檔案,覆蓋操作。
- & 在Linux命令的末尾加上一個 & 號,將這個任務放到後臺去執行
- nohup no hang up(不掛起),用於在系統後臺不結束通話地執行命令,退出終端不會影響程式的執行。
這些都是一些Linux命令,可以自己敲一敲測試即可。
後臺執行,如何關閉?直接kill。kill -9 pid
(執行專案程式的PID)
war包
SpringBoot不推薦打war包,但是你說我頭鐵,非要打war包咧?可!
修改pom.xml
<!-- 將jar改成war,如果沒有,則新增-->
<packaging>war</packaging>
<!-- 新增 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- 打包執行時,排除 -->
<scope>provided</scope>
</dependency>
注意這兩處的節點位置。
修改啟動類
此時啟動類中的main方法已經失效了。以測試專案為例
@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
類並重寫configure
方法。注意方法體的書寫。
接下來就繼續使用maven打包即可。引數上面打jar的使用maven方式。
打好的war包是需要放在容器中執行的,簡單的就放在Tomcat中的webapps目錄中。啟動Tomcat即可。
war包已經打好了,直接丟Tomcat了。
啟動Tomcat即可。
但是在實際開發中,還是不推薦打war包。
相關文章
- Spring Boot :熱部署Spring Boot熱部署
- Spring Boot 揭祕與實戰(八) 釋出與部署 - 開發熱部署Spring Boot熱部署
- Spring Boot整合熱部署框架Spring Boot熱部署框架
- Spring Boot(十二):Spring Boot 如何測試打包部署Spring Boot
- Spring Boot 三 熱部署 devtoolsSpring Boot熱部署dev
- 極速開發之Spring Boot五種熱部署方式Spring Boot熱部署
- 關於熱部署-理解與總結熱部署
- ant打包部署web工程Web
- Spring Boot package打包失敗Spring BootPackage
- Spring Boot中使用profiles 打包Spring Boot
- 阿里原來是這麼幹的!Spring Boot 五種熱部署方式阿里Spring Boot熱部署
- IDEA中Spring boot配置熱部署無效問題解決方式IdeaSpring Boot熱部署
- Spring Boot學習總結(4)——使用Springloaded進行熱部署Spring Boot熱部署
- Spring Boot乾貨系列:(十)開發常用的熱部署方式彙總Spring Boot熱部署
- 【前端打包部署】談一談我在SPA專案打包=>部署的處理前端
- idea熱部署Idea熱部署
- eclipse 熱部署Eclipse熱部署
- javarebel熱部署 (轉)Java熱部署
- Spring Boot (二)整合Jsp與生產環境部署Spring BootJS
- 【前端打包部署】談一談我在SPA專案打包=>部署的處理(上)前端
- Spring Boot 熱載入Spring Boot
- spring boot: 熱部署(一) run as – java application (spring-loader-1.2.4.RELEASE.jar)Spring Boot熱部署JavaAPPJAR
- springboot打包不同環境配置與shell指令碼部署Spring Boot指令碼
- Vue專案打包到django部署VueDjango
- springboot熱部署Spring Boot熱部署
- 深入探索 Java 熱部署Java熱部署
- Java 熱部署深入探索Java熱部署
- 使用 Docker 部署 Spring BootDockerSpring Boot
- (已解決)idea 修改html jsp需要重啟 重新打包 熱部署失敗 問題IdeaHTMLJS熱部署
- Spring Boot 2.0(四):使用 Docker 部署 Spring BootSpring BootDocker
- Spring Boot(十六):使用 Jenkins 部署 Spring BootSpring BootJenkins
- 遠端熱部署的落地與思考-動態編譯篇熱部署編譯
- 8、Ktor學習-部署之打包;
- express製作小型熱載入打包webpackExpressWeb
- 熱更新 + 命令列 打包 (階段總結)命令列
- 玩轉spring boot——war部署Spring Boot
- SpringBoot熱部署加持Spring Boot熱部署
- 一、SpringBoot熱部署Spring Boot熱部署