Maven高級
分模塊設計與開發
分模塊設計:將一個大項目分成若干個子模塊,方便項目的維護、擴展,也方便模塊間的相互引用,資源共享。
策略:
1.策略一:按照功能模塊拆分,比如:公共組件、商品模塊、搜索模塊、購物車模塊、訂單模塊等。
2.策略二:按層拆分,比如:公共組件、實體類、控制層、業務層、數據訪問層。
3.策略三:按照功能模塊+層拆分。
分模塊開發:
1.創建maven模塊tlias-pojo,存放實體類
2.創建maven模塊tlias-utils,存放相關工具類
(注意:分模塊開發需要先針對模塊功能進行設計,再進行編碼。不會先將工程開發完畢,然后再進行拆分)
繼承與聚合
繼承:
繼承關系:
概念:繼承描述的是兩個工程間的關系,與java中的繼承相似,子工程可以繼承父工程中的配置信息,常見于依賴關系的繼承。
作用:簡化依賴配置、統一管理依賴
實現:<parent>...</parent>
繼承關系實現:
1.創建maven模塊tlias-parent,該工程為父工程,設置打包方式為pom(默認jar)。
2.在子工程中的pom.xml文件中,配置繼承關系。
3.在父工程中配置各個工程共有的依賴(子工程會自動繼承父工程的依賴)。
(jar:普通模塊打包,springboot項目基本都是jar包(內嵌tomcat運行);war:普通web程序打包,需要部署在外部的tomcat服務器中運行;pom父工程或聚合工程,該模塊不寫代碼,僅僅進行依賴管理)
注意事項:
1.在子工程中,配置了繼承關系之后,坐標中的groupId是可以省略的,因為會自動繼承父工程的。
2.relativePath指定父工程的pom文件的相對位置(如果不指定,將從本地倉庫/遠程倉庫查找)。
3.若父子工程都配置了同一個依賴的不同版本,以子過程為準。
版本鎖定:
在maven中,可以在父工程的pom文件中通過<denpendencyManagemnet>來統一管理依賴版本。
自定義版本/引用屬性:
<denpendencyManagemnet>和<denpendencies>的區別:
<denpendencyManagemnet>是統一管理依賴版本,不會直接依賴,還需要再子工程中引入所需依賴,但無需指定版本
<denpendencies>是直接依賴,在父工程配置了依賴,子工程會直接繼承下來。
聚合:
聚合:將多個模塊組織成一個整體,同時進行項目的構建。
聚合工程:一個不具有業務功能的“空”工程(有且僅有一個pom文件)
作用:快速構建項目(無需根據依賴關系手動構建,直接在聚合工程上構建即可)
實現:maven中可以通過<modules>設置當前聚合工程所包含的子模塊名稱
(注意:聚合工程中包含的模塊,在構建時,會自動根據模塊間的依賴關系構建順序,與聚合工程中模塊的配置書寫位置無關)
maven中繼承和聚合的聯系和區別:
聯系:繼承和聚合都屬于設計模塊,打包方式都為pom,常將兩種關系制作到同一個pom文件中。
區別:1.繼承用于簡化依賴配置、統一管理依賴版本,是在子工程中配置繼承關系。2.聚合用于快速構建項目,是在父工程(聚合工程)中配置聚合的模塊。
私服
介紹:
私服是一種特殊的遠程倉庫,它是架設在局域網內的倉庫服務,用來代理位于外部的中央倉庫,用于解決團隊的資源共享與資源同步問題
依賴查找順序:本地倉庫,私服,中央倉庫
(注意:私服在企業項目開發中,一個項目/公司,只需要一臺即可,無需我們自己搭建,會使用即可)
資源上傳和下載:
項目版本:
RELEASE(發行版本):功能趨于穩定,當前更新停止,可以用于發行的版本,儲存在私服中的RELEASE倉庫中。
SNAPSHOT(快照版本):功能不穩定,尚處于開發中的版本,即快照版本,存儲在私服的SNAPSHOT倉庫中。
步驟:
私服準備好了之后,我們要做如下幾步配置:
1. 設置私服的訪問用戶名/密碼(在自己maven安裝目錄下的**conf/settings.xml
中的servers中配置)**
<server><id>maven-releases</id><username>admin</username><password>admin</password>
</server><server><id>maven-snapshots</id><username>admin</username><password>admin</password>
</server>
2. 設置私服依賴下載的倉庫組地址(在自己maven安裝目錄下的**conf/settings.xml
中的mirrors中配置)**
<mirror><id>maven-public</id><mirrorOf>*</mirrorOf><url>http://localhost:8081/repository/maven-public/</url>
</mirror>
3. 設置私服依賴下載的倉庫組地址(在自己maven安裝目錄下的**conf/settings.xml
中的profiles中配置)**
<profile><id>allow-snapshots</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven-public</id><url>http://localhost:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
</profile>
4. IDEA的maven工程的pom文件中配置上傳(發布)地址(直接在**tlias-parent
中配置發布地址)**
<distributionManagement><!-- release版本的發布地址 --><repository><id>maven-releases</id><url>http://localhost:8081/repository/maven-releases/</url></repository><!-- snapshot版本的發布地址 --><snapshotRepository><id>maven-snapshots</id><url>http://localhost:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>
配置完成之后,我們就可以在tlias-parent
中執行deploy生命周期,將項目發布到私服倉庫中。