IDEA使用Maven創(chuàng)建父與子多模塊項目的圖文教程
引言
在 IntelliJ IDEA 中使用 Maven 創(chuàng)建父與子多模塊項目是一個常見的開發(fā)實踐,有助于更好地組織和管理代碼。在多模塊項目中,可以將公共的代碼、資源或配置抽離到獨立的模塊中,然后在其他模塊中直接引用。這樣可以避免代碼重復,提高代碼的重用性。
父模塊可以統(tǒng)一管理依賴的版本和配置,子模塊則繼承這些配置。這樣不僅簡化了依賴管理,還確保了項目中所有模塊使用的依賴版本一致,減少了因版本不一致導致的沖突和錯誤。多模塊項目允許將項目按照功能或業(yè)務進行分割,每個模塊都有自己的職責和功能。這使得項目結構更加清晰易懂,方便開發(fā)者進行模塊化管理。
1、創(chuàng)建父工程
(1)使用 IDEA 新建父工程。

(2)刪除父工程下多余的文件和文件夾。

2、創(chuàng)建子模塊
(1)右鍵父工程,選擇“新建”,然后選擇“新模塊”。

(2)創(chuàng)建子模塊。
分別創(chuàng)建3個子模塊:
com-pjb-proudct:商品模塊。
com-pjb-order:訂單模塊。
com-pjb-member:會員模塊。

注意:子模塊的組名(包名)必須與父工程的一致。
(3)繼續(xù)創(chuàng)建其余的子模塊

3、父工程的 Maven 配置
(1)設置父工程的包為 pom(必須)。
<!-- 設置父工程的包為 pom --> <packaging>pom</packaging>
(2)關聯(lián)子模塊。
<!-- 關聯(lián)子模塊-->
<modules>
<module>com-pjb-proudct</module>
<module>com-pjb-order</module>
<module>com-pjb-member</module>
</modules>(3)設置 <dependencyManagement> 節(jié)點。
Maven 中的 <dependencyManagement>節(jié)點,用于父工程POM中定義依賴的版本和配置,而不實際引入這些依賴。它提供了一種集中管理和控制項目中所有模塊或子項目所使用的依賴項版本的方式。
通過 <dependencyManagement> 節(jié)點,可以在父POM中統(tǒng)一聲明依賴項的版本,子模塊在引用這些依賴時無需再顯式指定版本號,從而確保所有子模塊使用的都是同一版本的依賴。
在父 POM 的 <dependencyManagement> 部分,使用 <dependencies> 元素包裹一系列的 <dependency> 元素,每個 <dependency> 元素指定一個依賴項的 groupId、artifactId 和 version。
<properties>
<spring.boot.version>2.4.2</spring.boot.version>
<lombok.version>1.18.28</lombok.version>
</properties>
<!-- <dependencyManagement>節(jié)點:用于父工程POM中定義依賴的版本和配置,而不實際引入這些依賴-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<!-- Lombok 依賴 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement>(4)完整的父工程 pom.xml 文件配置。
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- SpringBoot 的依賴-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/>
</parent>
<groupId>com.pjb</groupId>
<artifactId>MultiModule</artifactId>
<version>1.0.0</version>
<name>MultiModule</name>
<description>MultiModule</description>
<!-- 設置父工程的包為 pom -->
<packaging>pom</packaging>
<!-- 關聯(lián)子模塊-->
<modules>
<module>com-pjb-proudct</module>
<module>com-pjb-order</module>
<module>com-pjb-member</module>
</modules>
<properties>
<spring.boot.version>2.4.2</spring.boot.version>
<lombok.version>1.18.28</lombok.version>
</properties>
<!-- <dependencyManagement>節(jié)點:用于父工程POM中定義依賴的版本和配置,而不實際引入這些依賴-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<!-- Lombok 依賴 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>4、子模塊的 Maven 配置
(1)<parent> 節(jié)點引用父工程的依賴。
<!-- 步驟1:不再直接使用SpringBoot依賴,而是引用父工程的依賴-->
<parent>
<groupId>com.pjb</groupId>
<artifactId>MultiModule</artifactId>
<version>1.0.0</version>
</parent>(2)設置子模塊的包為 jar(必須)。
<!-- 步驟2:設置子模塊的包為 jar --> <packaging>jar</packaging>
(3)完整的子模塊 pom.xml 文件配置。
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 步驟1:不再直接使用SpringBoot依賴,而是引用父工程的依賴-->
<parent>
<groupId>com.pjb</groupId>
<artifactId>MultiModule</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
<!-- 步驟2:設置子模塊的包為 jar-->
<packaging>jar</packaging>
<!-- 注意:groupId 必須與父工程一致 -->
<groupId>com.pjb</groupId>
<artifactId>Proudct</artifactId>
<version>1.0.0</version>
<name>com-pjb-proudct</name>
<description>com-pjb-proudct</description>
<!-- 子模塊在引用這些依賴時無需再顯式指定版本號,從而確保所有子模塊使用的都是父工程同一版本的依賴 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Lombok 依賴 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 注意:必須加上如下配置,否則打包會報錯 -->
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
</project>5、啟動服務
啟動子模塊,測試運行結果。

啟動成功。
以上就是IDEA使用Maven創(chuàng)建父與子多模塊項目的圖文教程的詳細內容,更多關于IDEA Maven創(chuàng)建父與子項目的資料請關注腳本之家其它相關文章!
相關文章
Java異常處理之try...catch...finally詳解
今天小編就為大家分享一篇關于Java異常處理之try...catch...finally詳解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
使用Springboot實現(xiàn)word在線編輯保存
PageOffice目前支持的Web編程語言及架構有:Java(JSP、SSH、MVC等),ASP.NET(C#、VB.NET、MVC、Razor等),PHP,ASP,本篇文章就帶你使用Springboot整合PageOffice實現(xiàn)word在線編輯保存2021-08-08
使用Java實現(xiàn)將PowerPoint轉換為PDF的完整指南
將 PowerPoint 轉換為 PDF 就是一個規(guī)避兼容問題的不二選擇,通過 Java 完成這一自動化流程,則能進一步應用到辦公自動化和在線文檔系統(tǒng)中,下面我們就來看看具體實現(xiàn)步驟吧2025-12-12
Kafka利用Java實現(xiàn)數(shù)據(jù)的生產和消費實例教程
這篇文章主要給大家介紹了關于Kafka利用Java實現(xiàn)數(shù)據(jù)的生產和消費的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-01-01

