第二十三章:SpringBoot專案多模組打包與部署
我們接上章節內容繼續,上一章我們已經完成了多模組專案的建立以及執行,那我們線上環境該如何打包部署呢?
本章目標
打包部署SpringBoot多模組專案到外部執行Tomcat容器中。
構建專案
我們直接複製一份上一章的程式碼,如下圖1所示:
上圖1 我們複製了chapter22專案原始碼,並且修改每個模組的pom.xml配置檔案內的artifactId為chapter23。
Maven Install
我們如果現在直接執行pager子模組專案打包命令(maven package)maven會給我們提示沒有找到所需要的user.jar因為我們的pager模組專案的pom.xml配置檔案內引入了com.yuqiyu.user模組,如下圖2所示
在IDEA工具中給我們maven專案預設提供了常用到的命令我們直接使用就可以了,在專案的右側有一個Maven Projects,如下圖3所示:
點選紅色框焦點就會出現上圖3所示的內容,展開任意一個Maven模組下都會存在三個模組Lifecycle(常用到的命令)、Plugins(外掛)、Dependencies(專案部署所依賴的包列表)。
我們打包時一定要注意要從完全被依賴的專案開始
Bean Module Maven Install
因為我們的bean
子專案是完全被依賴的,所以我們先從這個專案開始,點開Maven Projects
後我們找到bean專案,展開Lifecycle
install
命令雙擊開始執行打包,當我們執行maven install命令時會直接將我們工作空間內的專案直接生成jar包並且新增到本地maven倉庫,這樣我們在專案中就可以直接依賴使用,雙擊install
命令後檢視控制檯輸出日誌,如下圖4所示: 可以看到我們的控制檯已經輸出了打包成功的日誌,那我們直接去本地maven倉庫檢視是否已經存在,如下圖5所示:
可以看到已經在我們本地maven倉庫存在,這樣我們user模組就可以執行下面的打包操作,因為步驟一樣我這裡就不做一一解釋了,同樣的方式打包user
專案(注意:所有被依賴都打包完成後才可以打包依賴專案)。
Pager Module Maven Package
所有的jar包依賴都執行打包完成後,我們開始進行pager專案的打包,因為我們的pager專案是一個web專案,我們只是需要生成後的war包部署到外部容器而已所以我們需要換一個命令package
(打包到target目錄下,並不會新增到maven倉庫)
執行package命令後檢視控制檯日誌輸出,如下圖6所示:
我們可以看到控制檯輸出我們打包成功的日誌,我們可以去target目錄下檢視已經有一個pager-1.0.0.war,打包的名稱可以通過新增finalName引數修改,如下圖7所示:
先來執行clean命令後再執行package命令,這時target就會有一個pager.war存在。
統一打包方式
我們上面講的是分步打包,我們完成可以在chapter23這個專案中執行maven package命令,這樣所有的子模組以及父模組都會參與打包並且在在target目錄下生成對應模組的jar或者war
點選Maven Projects選擇chapter23執行命令clean,你就會發現所有專案的target目錄都會被刪除,下面我們來執行package命令檢視效果如下圖8所示:
在控制檯輸出的內容與我們之前有所差異,我們在chapter23執行的package命令後maven會把chapter23本身以及所有的子模組專案都執行一遍package命令,並且你不需要考慮依賴問題,maven會自動去處理。
pager.war
生成後複製到tomcat目錄下的webapps內,執行tomcat訪問就可以了,跟我們普通專案沒有區別。
總結
以上內容就是本章的全部講解,本章主要講解了基於SpringBoot框架建立的多模組專案如何使用兩種方式進行打包部署,當然建議使用第二種方式比較方便快捷不需要考慮依賴問題。
本章內容已經上傳到碼雲
更多幹貨文章掃碼關注微信公眾號
加入知識星球,恆宇少年帶你走以後的技術道路!!!
相關推薦
第二十三章:SpringBoot專案多模組打包與部署
我們接上章節內容繼續,上一章我們已經完成了多模組專案的建立以及執行,那我們線上環境該如何打包部署呢? 本章目標 打包部署SpringBoot多模組專案到外部執行Tomcat容器中。 構建專案 我們直接複製一份上一章的程式碼,如下圖1所示:
第二十三章:XML可擴充套件標記語言
作者:java_wxid XML 簡介 什麼是 XML? XML 指可擴充套件標記語言(EXtensible Markup Language)。 XML 是一種很像HTML的標記語言。 XML 的設計宗旨是傳輸資料,而不是顯示資料。 XML 標籤沒有被預定義。您需要自行定義標籤。
“全棧2019”Java第二十三章:流程控制語句中決策語句switch上篇
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第二十三章:流程控制語句中決策語句switch上篇 下一章 “全棧2019”Java第二十四
SpringBoot | 第六章:springboot 專案啟動讀取按照順序讀取配置檔案
1.按照順序讀取配置檔案工具類 import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; im
第十八章:SpringBoot專案中使用SpringSecurity整合OAuth2設計專案API安全介面服務
OAuth是一個關於授權的開放網路標準,在全世界得到的廣泛的應用,目前是2.0的版本。OAuth2在“客戶端”與“服務提供商”之間,設定了一個授權層(authorization layer)。“客戶端”不能直接登入“服務提供商”,只能登入授權層,以此將使用者與客
springboot一個專案多模組打包(終於可以了,網路上的能在仔細點嗎)。參考了很多,來個詳細的。
有人說想要例子:我把連結放這了:如果你覺得自己很放不想寫,可以下載pom檔案的案例https://download.csdn.net/download/qq_28929589/10540018首先這是我公司的專案結構core不依賴誰user依賴corehr依賴user和cor
springboot一個專案多模組打包踩過的坑
其實主要幾點: 切記父檔案不需要打包和對應的模組不要寫下面一段,在主模組寫就行。 因為對應的模組檔案不需要打包,因為我的主模組需要到對應包中的依賴,打包了就找不到了 <build> <plugins>
Shiro 第二十三章 多專案集中許可權管理及分散式會話
在做一些企業內部專案時或一些網際網路後臺時;可能會涉及到集中許可權管理,統一進行多專案的許可權管理;另外也需要統一的會話管理,即實現單點身份認證和授權控制。學習本章之前,請務必先學習《第十章 會話管理》和《第十六章 綜合例項》,本章程式碼都是基於這兩章的程式碼基礎上完成的。本
SpringBoot | 第三十三章:Spring web Servcies整合和使用
前言 最近有個單位內網系統需要對接統一門戶,進行單點登入和待辦事項對接功能。一般上政府系統都會要求做統一登入功能,這個沒啥問題,反正業務系統都是做單點登入的,改下shiro相關類就好了。看了接入方案,做坑爹的是需要業務系統提供一個webService服務,供統一平臺呼叫。對於ws服務,是
第二十七章:JavaEE專案的三層架構
作者:java_wxid JavaEE專案的三層架構 分層的作用 方便專案後期的維護和升級,以及擴充套件。 分層的好處是降低程式碼的耦合度 分層後的程式碼包結構 Dao持久層的包 com.dao 放dao層的介面 com.dao.impl 放dao層的實現類 Se
轉載:SpringBoot非官方教程 | 第二十三篇: 非同步方法
轉載:https://blog.csdn.net/forezp/article/details/71024169 這篇文章主要介紹在springboot 使用非同步方法,去請求github api. 建立工程 在pom檔案引入相關依賴: <dependency
利用springboot建立多模組專案
本文旨在用最通俗的語言講述最枯燥的基本知識 最近要對一個不大不小的專案進行重構,用spring覺得太過於繁瑣,用cloud又有覺得過於龐大,維護的人手不夠;權衡之下,最終選了springboot作為架子,但是因為專案涉及的業務模組較多,各個模組之間的業務交流不是很多,相對獨立,因此想著把專案做成多模組
IDEA springboot 建立多模組專案,打包
原始碼:https://gitee.com/DencyCheng/springboot-multiModule/tree/dev 1.專案結構 2.專案依賴關係 multi-module :外層專案 model:實體類 persistence:持久化物件 web:控
【給小白看的Java教程】第二十三章,生命的遺傳:繼承
繼承思想 需求,使用面向物件的知識定義出老師(Teacher)、學生(Student)、員工(Employee)三個類: + 老師:擁有名字、年齡、級別三個狀態,有授課和休息兩個功能 + 學生:擁有名字、年齡、學好三個狀態,有學習和休息兩個功能 + 員工:擁有名
Springboot搭建多模組專案,拆分應用
工具: idea 首先,我們要搭建的一個專案有以下幾個模組 demo-apply 應用模組 demo-common 公用工具類 demo-static 靜態資源 好,既然知道了我們想要做的事情,那麼對於這些模組,我們需要統一的parent專案,
“全棧2019”Java第七十三章:外部類裡多個靜態非靜態內部類詳解
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第七十三章:外部類裡多個靜態非靜態內部類詳解
SpringBoot+Maven 多模組專案的構建、執行、打包實戰
專案使用的工具: IntelliJ IDEA JDK 1.8 apache-maven-3.3.9 專案的目錄: 主專案 springboot-multi 子模組 entity、dao、service、web 一、使用IDEA建立一個Spring
SpringBoot+Maven多模組專案(建立、依賴、打包可執行jar包部署測試)完整流程
開發環境:IDEA, SprngBoot 2.0.4, Maven 2.19.1 工程結構: 父工程father
一起來學SpringBoot | 第二十三篇:輕鬆搞定重複提交(分散式鎖)
SpringBoot 是為了簡化 Spring 應用的建立、執行、除錯、部署等一系列問題而誕生的產物,自動裝配的特性讓我們可以更好的關注業務本身而不是外部的XML配置,我們只需遵循規範,引入相關的依賴就可以輕易的搭建出一個 WEB 工程 在 一起來學S
第二十七章:SpringBoot使用ApplicationEvent&Listener完成業務解耦
ApplicationEvent以及Listener是Spring為我們提供的一個事件監聽、訂閱的實現,內部實現原理是觀察者設計模式,設計初衷也是為了系統業務邏輯之間的解耦,提高可擴充套件性以及可維護性。事件釋出者並不需要考慮誰去監聽,監聽具體的實現內容是什麼,