【参考: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父工程
在每个父工程里面创建子工程