SpringBoot項(xiàng)目多模塊項(xiàng)目中父類與子類pom.xml的關(guān)聯(lián)問題小結(jié)
1:父類 POM 的配置
- 父 POM 通過
<modules>聲明子模塊,并通過<dependencyManagement>管理依賴版本。 - 子 POM 通過
<parent>指定父 POM,繼承父 POM 的配置。 - 父子 POM 的連接方式是多模塊項(xiàng)目的基礎(chǔ),能夠有效管理依賴和配置,提高項(xiàng)目的可維護(hù)性。
- 父類 POM 是一個(gè)聚合工程(
packaging為pom),它通過<modules>標(biāo)簽聲明子模塊,并通過<dependencyManagement>管理依賴版本。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 父項(xiàng)目基本信息 -->
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging> <!-- 父項(xiàng)目必須是 pom 類型 -->
<!-- 子模塊聲明 -->
<modules>
<module>module1</module>
<module>module2</module>
</modules>
<!-- 依賴管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.6.13</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.24</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 通用配置 -->
<properties>
<java.version>1.8</java.version>
</properties>
</project>2:子類 POM 的配置
子類 POM 通過 <parent> 標(biāo)簽指定父 POM 的坐標(biāo)(groupId、artifactId、version),并繼承父 POM 的配置。子模塊可以添加自己的依賴和配置。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 指定父 POM -->
<parent>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath> <!-- 父 POM 的相對路徑 -->
</parent>
<!-- 子模塊基本信息 -->
<artifactId>module1</artifactId>
<!-- 子模塊的依賴 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</project>3:父子 POM 的連接方式
3.1 父 POM 聲明子模塊
在父 POM 中,使用 <modules> 標(biāo)簽聲明子模塊:
<modules>
<module>module1</module>
<module>module2</module>
</modules>3.2 子 POM 指定父 POM
在子 POM 中,使用 <parent> 標(biāo)簽指定父 POM 的坐標(biāo):
<parent>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath> <!-- 父 POM 的相對路徑 -->
</parent>3.3 依賴?yán)^承
子模塊可以繼承父 POM 中 <dependencyManagement> 管理的依賴,無需指定版本號:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>4:父子 POM 的工作機(jī)制
- 依賴管理:父 POM 通過
<dependencyManagement>管理依賴版本,子模塊繼承這些依賴。 - 配置繼承:父 POM 中的
<properties>、<build>等配置會被子模塊繼承。 - 模塊聚合:父 POM 通過
<modules>聚合子模塊,構(gòu)建時(shí)會按照順序構(gòu)建所有子模塊。
5:注意事項(xiàng)
1:父 POM 的 packaging 必須為 pom
<packaging>pom</packaging>
2:子模塊的 <parent> 必須正確指定父 POM 的坐標(biāo)
<parent>
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>3:子模塊的 <artifactId> 必須唯一:
每個(gè)子模塊的 artifactId 不能重復(fù)。
4:依賴版本管理:
子模塊繼承父 POM 的依賴版本,如果需要覆蓋版本,可以在子模塊中顯式指定。
總結(jié)
父 POM 通過 <modules> 聲明子模塊,并通過 <dependencyManagement> 管理依賴版本。
子 POM 通過 <parent> 指定父 POM,繼承父 POM 的配置。
父子 POM 的連接方式是多模塊項(xiàng)目的基礎(chǔ),能夠有效管理依賴和配置,提高項(xiàng)目的可維護(hù)性。
到此這篇關(guān)于SpringBoot項(xiàng)目多模塊項(xiàng)目中父類與子類pom.xml的關(guān)聯(lián)詳解的文章就介紹到這了,更多相關(guān)SpringBoot父類與子類pom.xml的關(guān)聯(lián)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatis if test判斷BigDecimal遇到的坑及解決
這篇文章主要介紹了mybatis if test判斷BigDecimal遇到的坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
SpringBoot緩存預(yù)熱實(shí)戰(zhàn)
緩存預(yù)熱是一種常見的優(yōu)化策略,旨在提高系統(tǒng)的響應(yīng)速度和性能,本文主要介紹了SpringBoot緩存預(yù)熱實(shí)戰(zhàn)指南,具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01
利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片
這篇文章主要為大家詳細(xì)介紹了利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
Java tomcat中的類加載器和安全機(jī)制你了解嗎
這篇文章主要介紹了Tomcat 類加載器的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下,希望能夠給你帶來幫助2021-09-09
Java高級之虛擬機(jī)加載機(jī)制的實(shí)例講解
下面小編就為大家分享一篇Java高級之虛擬機(jī)加載機(jī)制的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
Spring Boot配置Thymeleaf(gradle)的簡單使用
今天小編就為大家分享一篇關(guān)于Spring Boot配置Thymeleaf(gradle)的簡單使用,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12

