1. 程式人生 > >第二十三章:SpringBoot專案多模組打包與部署

第二十三章:SpringBoot專案多模組打包與部署

我們接上章節內容繼續,上一章我們已經完成了多模組專案的建立以及執行,那我們線上環境該如何打包部署呢?

本章目標

打包部署SpringBoot多模組專案到外部執行Tomcat容器中。

構建專案

我們直接複製一份上一章的程式碼,如下圖1所示:
圖1

上圖1 我們複製了chapter22專案原始碼,並且修改每個模組的pom.xml配置檔案內的artifactId為chapter23。

Maven Install

我們如果現在直接執行pager子模組專案打包命令(maven package)maven會給我們提示沒有找到所需要的user.jar因為我們的pager模組專案的pom.xml配置檔案內引入了com.yuqiyu.user模組,如下圖2所示
圖2

在IDEA工具中給我們maven專案預設提供了常用到的命令我們直接使用就可以了,在專案的右側有一個Maven Projects,如下圖3所示:
圖3

點選紅色框焦點就會出現上圖3所示的內容,展開任意一個Maven模組下都會存在三個模組Lifecycle(常用到的命令)、Plugins(外掛)、Dependencies(專案部署所依賴的包列表)。

我們打包時一定要注意要從完全被依賴的專案開始

Bean Module Maven Install

因為我們的bean子專案是完全被依賴的,所以我們先從這個專案開始,點開Maven Projects後我們找到bean專案,展開Lifecycle

選擇 install命令雙擊開始執行打包,當我們執行maven install命令時會直接將我們工作空間內的專案直接生成jar包並且新增到本地maven倉庫,這樣我們在專案中就可以直接依賴使用,雙擊install命令後檢視控制檯輸出日誌,如下圖4所示:
圖4

可以看到我們的控制檯已經輸出了打包成功的日誌,那我們直接去本地maven倉庫檢視是否已經存在,如下圖5所示:
圖5

可以看到已經在我們本地maven倉庫存在,這樣我們user模組就可以執行下面的打包操作,因為步驟一樣我這裡就不做一一解釋了,同樣的方式打包user專案(注意:所有被依賴都打包完成後才可以打包依賴專案)。

Pager Module Maven Package

所有的jar包依賴都執行打包完成後,我們開始進行pager專案的打包,因為我們的pager專案是一個web專案,我們只是需要生成後的war包部署到外部容器而已所以我們需要換一個命令package(打包到target目錄下,並不會新增到maven倉庫)

執行package命令後檢視控制檯日誌輸出,如下圖6所示:
圖6

我們可以看到控制檯輸出我們打包成功的日誌,我們可以去target目錄下檢視已經有一個pager-1.0.0.war,打包的名稱可以通過新增finalName引數修改,如下圖7所示:
圖7

先來執行clean命令後再執行package命令,這時target就會有一個pager.war存在。

統一打包方式

我們上面講的是分步打包,我們完成可以在chapter23這個專案中執行maven package命令,這樣所有的子模組以及父模組都會參與打包並且在在target目錄下生成對應模組的jar或者war

點選Maven Projects選擇chapter23執行命令clean,你就會發現所有專案的target目錄都會被刪除,下面我們來執行package命令檢視效果如下圖8所示:
圖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為我們提供的一個事件監聽、訂閱的實現,內部實現原理是觀察者設計模式,設計初衷也是為了系統業務邏輯之間的解耦,提高可擴充套件性以及可維護性。事件釋出者並不需要考慮誰去監聽,監聽具體的實現內容是什麼,