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>
管理的依賴,無需指定版本號(hào):
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
4:父子 POM 的工作機(jī)制
- 依賴管理:父 POM 通過
<dependencyManagement>
管理依賴版本,子模塊繼承這些依賴。 - 配置繼承:父 POM 中的
<properties>
、<build>
等配置會(huì)被子模塊繼承。 - 模塊聚合:父 POM 通過
<modules>
聚合子模塊,構(gòu)建時(shí)會(huì)按照順序構(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-03SpringBoot緩存預(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-07Java tomcat中的類加載器和安全機(jī)制你了解嗎
這篇文章主要介紹了Tomcat 類加載器的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下,希望能夠給你帶來幫助2021-09-09Java高級(jí)之虛擬機(jī)加載機(jī)制的實(shí)例講解
下面小編就為大家分享一篇Java高級(jí)之虛擬機(jī)加載機(jī)制的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12Spring Boot配置Thymeleaf(gradle)的簡單使用
今天小編就為大家分享一篇關(guān)于Spring Boot配置Thymeleaf(gradle)的簡單使用,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12