SpringBoot項目多模塊項目中父類與子類pom.xml的關(guān)聯(lián)問題小結(jié)
1:父類 POM 的配置
- 父 POM 通過
<modules>聲明子模塊,并通過<dependencyManagement>管理依賴版本。 - 子 POM 通過
<parent>指定父 POM,繼承父 POM 的配置。 - 父子 POM 的連接方式是多模塊項目的基礎(chǔ),能夠有效管理依賴和配置,提高項目的可維護性。
- 父類 POM 是一個聚合工程(
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>
<!-- 父項目基本信息 -->
<groupId>com.example</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging> <!-- 父項目必須是 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 的工作機制
- 依賴管理:父 POM 通過
<dependencyManagement>管理依賴版本,子模塊繼承這些依賴。 - 配置繼承:父 POM 中的
<properties>、<build>等配置會被子模塊繼承。 - 模塊聚合:父 POM 通過
<modules>聚合子模塊,構(gòu)建時會按照順序構(gòu)建所有子模塊。
5:注意事項
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> 必須唯一:
每個子模塊的 artifactId 不能重復(fù)。
4:依賴版本管理:
子模塊繼承父 POM 的依賴版本,如果需要覆蓋版本,可以在子模塊中顯式指定。
總結(jié)
父 POM 通過 <modules> 聲明子模塊,并通過 <dependencyManagement> 管理依賴版本。
子 POM 通過 <parent> 指定父 POM,繼承父 POM 的配置。
父子 POM 的連接方式是多模塊項目的基礎(chǔ),能夠有效管理依賴和配置,提高項目的可維護性。
到此這篇關(guān)于SpringBoot項目多模塊項目中父類與子類pom.xml的關(guān)聯(lián)詳解的文章就介紹到這了,更多相關(guān)SpringBoot父類與子類pom.xml的關(guān)聯(lián)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Spring Validation實現(xiàn)全局參數(shù)校驗異常處理的示例詳解
在 Spring Boot 項目開發(fā)中,接口參數(shù)校驗是保障數(shù)據(jù)合法性的關(guān)鍵環(huán)節(jié),Spring Validation 提供了便捷的參數(shù)校驗?zāi)芰?下面我們就來看看具體的實現(xiàn)方法吧2025-08-08
java中PreparedStatement和Statement詳細(xì)講解
這篇文章主要介紹了java中PreparedStatement和Statement詳細(xì)講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Spring事務(wù)管理下synchronized鎖失效問題的解決方法
這篇文章主要給大家介紹了關(guān)于Spring事務(wù)管理下synchronized鎖失效問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-03-03
SpringMVC 參數(shù)綁定意義及實現(xiàn)過程解析
這篇文章主要介紹了SpringMVC 參數(shù)綁定意義及實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11

