目录
3 ) 设置项目名称和项目存放位置 ,点击“Finish ”
1.创建 Maven 工程
1 ) 选择 Maven ,点击“Next ”下一步
2 ) 设置项目坐标 设置项目坐标 ,点击“Next
3 ) 设置项目名称和项目存放位置 ,点击“Finish ”
4 ) 配置导入设置
Maven 项目被修改后,需要“手动更新”或“自动更新”,自行选择
2. 将 maven 工程修改为父工程
1 ) 设置 packaging 标签的内容
2 ) 删除 src 目录
3. 父工程添加编译插件
项目中会统一使用 JDK 版本和编译级别,所以项目的编译级别必须统一一致,那么将编译插件添加到父工程,子模块会无条件去继承父工程的插件。
添加编译插件前
在 File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler
添加编译插件后
<!-- 编译插件 -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<!-- 插件的版本 -->
<version>3.5.1</version>
<!-- 编译级别 -->
<configuration>
<source>1.8</source>
<target>1.8</target>
<!-- 编码格式 -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
4.创建子模块
1)选择 New Module
2)选择 maven 项目
3)设置子模块坐标
Add as module to:选择将创建的模块添加哪个模块
Parent:选择模块的父工程
GroupId:选择父工程后,默认继承父工程的 GroupId 值
ArtifactId:模块的项目名称
Version:选择父工程后,默认继承父工程的 Version 值
4)设置模块名称及存放位置
5. 项目视图
6.添加依赖
执行后效果:
在父工程的 dependencies 标签里添加 MySQL 依赖,子模块会无条件继承父工程所有依赖。
1)添加 MySQL 依赖(父工程pom文件)
2)添加 MySQL 依赖后
7. 父工程管理依赖版本号
以上写做法,子模块会无条件继承父工程的所有依赖,导致的问题是,本不需要的继承的依赖也会被继承,这就大大增加了项目模块最终打包的大小。
也就是说,父工程管理的是所有项目模块的依赖,而不是某一个项目模块的依赖,所以某一个项目模块不需要继承父工程中的所有依赖,这就需要子项目模块向父工程声明需要的依赖即可(声明式依赖)。而此时,父工程实际只需要管理依赖的版本号即可。
1)父工程添加 dependencyManagement
由于父工程通过 dependencyManagement 标签管理依赖,那么之前子模块无条件继承的依赖就全部消失。
2)父工程 添加 properties 管理版本号
在 properties 标签中,可以自定义标签名称来管理依赖的版本号,通常自定义的标签名称由“项目名称”+version 英文单词构成。被管理的依赖版本号由“${算定标签名称}”来代替。
3)子模块声明式添加依赖
由于父工程管理依赖的版本号,那么子模块要想继承依赖,只能通过声明式来添加依赖,实际上,子模块中的依赖是继承父工程依赖的版本号;如果子模块已定义依赖版本号,那么以子模块定义的版本号为准。