【参考:Maven进阶篇视频教程-maven多模块管理讲解【实战入门】【通俗易懂】_哔哩哔哩_bilibili-【Java程序猿来了】】
方法一
省略
方法二
父模块
创建一个空的maven工程 (不使用模板,其实用不用都无所谓)
【也可以创建一个空项目(非maven,是空项目),然后在里面创建一个maven父工程】
删除src目录,留下.idea,pom.xml文件即可
pom.xml 添加
<!--
maven父工程必须遵循:
1. packaging必须为pom(默认为jar)
2. 删除src目录
-->
<packaging>pom</packaging>
子模块(maven工程)
选中父项目 右键 新建
然后新建模块(选择maven工程,模板选不选都可以)
这里注意 父项 选择父工程的maven
demo01默认生成 parent
parent 中内容是父工程的信息
<parent>
<artifactId>mvn_parent2</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
左侧有一个 m上箭头 点击一下 就可以 跳转到父工程
父工程自动添加 modules
module 名称 与子模块artifactId相对应
再新建一个demo2子模块
添加依赖
<!-- 父工程中dependencies添加的依赖,子模块全部会无条件继承 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 父工程properties管理依赖的版本号
在dependency中使用 ${} 来引用
-->
<properties>
<!-- 通常管理依赖版本号的标签名称为 项目名称 + 字段version -->
<mysql-connector-java-version>8.0.28</mysql-connector-java-version>
<!-- 要么用短横杆连接,要么用点连接 -->
<!-- <junit.version>4.12</junit.version> -->
<junit-version>4.12</junit-version>
</properties>
<!-- 父工程dependencyManagement 只声明依赖但不实际引入它们,
子模块可以应用这些依赖声明,而不需要再次指定版本号
如果需要使用其他版本,直接指定新的版本号即可 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!--<version>8.0.28</version>-->
<version>${mysql-connector-java-version}</version>
</dependency>
</dependencies>
</dependencyManagement>
在 demo01 pom.xml 中添加jar包
子模块可以应用这些依赖声明,而不需要再次指定版本号
如果需要使用其他版本,直接指定新的版本号即可
子模块(其他项目)
springboot项目
默认新建为第二个父项目,看右侧的 root
改造方法
子模块添加 parent指向父工程
父工程 添加 子模块
其他
还可以在父工程 添加build等配置,也会被子模块继承
方法三
创建一个空项目(非maven,是空项目)
然后在里面创建多个maven父工程
在每个父工程里面创建子工程