Maven多模块管理

项目的目录结构:

一、创建父工程的必须遵循以下两点:

1、packaging标签的文本内容必须设置为pom

复制代码
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>com.example</groupId>
 8     <artifactId>maven-parent</artifactId>
 9     <version>1.0.0</version>
10 
11     <packaging>pom</packaging>
12 
13 </project>
复制代码

2、把父工程中的src目录删除掉

 二、创建子工程

1、新建module,勾选模块maven-parent为父模块

 2、子模块的pom文件中,parent标签关联了父工程。父工程中新增modules标签,关联了子模块

子模块的pom文件

复制代码
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <parent>
 6         <artifactId>maven-parent</artifactId>
 7         <groupId>com.example</groupId>
 8         <version>1.0.0</version>
 9     </parent>
10 
11     <modelVersion>4.0.0</modelVersion>
12 
13     <artifactId>maven-child</artifactId>
14 
15 </project>
复制代码

父工程的pom文件

复制代码
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>com.example</groupId>
 8     <artifactId>maven-parent</artifactId>
 9     <version>1.0.0</version>
10 
11     <modules>
12         <module>maven-child</module>
13     </modules>
14 
15     <packaging>pom</packaging>
16 
17 </project>
复制代码

三、父工程管理依赖

由于子工程是无条件继承父工程的所有依赖,使用<dependencyManagement>标签统一进行依赖管理,<properties>标签管理依赖的版本号。子工程使用声明式方式实现依赖的有需要继承,防止子模块中的依赖冗余。

复制代码
 1 <!--统一管理依赖的版本号-->
 2     <properties>
 3         <mysql.version>8.0.25</mysql.version>
 4         <junit.version>4.13.2</junit.version>
 5     </properties>
 6 
 7     <!--统一进行依赖管理-->
 8     <dependencyManagement>
 9         <dependencies>
10             <dependency>
11                 <groupId>mysql</groupId>
12                 <artifactId>mysql-connector-java</artifactId>
13                 <version>${mysql.version}</version>
14             </dependency>
15             <dependency>
16                 <groupId>junit</groupId>
17                 <artifactId>junit</artifactId>
18                 <version>${junit.version}</version>
19                 <scope>test</scope>
20             </dependency>
21         </dependencies>
22     </dependencyManagement>
复制代码

四、子工程按需要声明式继承依赖

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
</dependencies>

 

posted @   与牛竞技  阅读(211)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示