分模块开发与设计
分模块开发的意义
将原始模块按照功能拆分成若干个子模块,方便模块间的互相调用,接口共享
分模块开发步骤:
1.创建Maven模块
不选择模板
最后点击finish
2.书写模块代码
(这里拆分dao层)
3.添加模块依赖
(需要哪一个模块就添加哪一个模块的依赖)
<!--依赖domain运行-->
<dependency>
<groupId>com.yan</groupId>
<artifactId>maven-03-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--依赖dao运行-->
<dependency>
<groupId>com.yan</groupId>
<artifactId>maven-04-dao</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
4.通过maven指令安装模块到本地仓库
依赖管理
依赖传递
依赖具有传递性
- 直接依赖:当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
依赖传递冲突问题
- 路径优先:当依赖中出现相同资源时,层级越深,优先级越低。层次越浅,优先级越高
- 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
- 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的(以最后配置的版本为准)
可选依赖
可选依赖指对外隐藏当前所依赖的资源——不透明
<optional >true/false</optional>
<dependency>
<groupId>com.yan</groupId>
<artifactId>maven_03_domain</artifactId>
<version>1.0-SNAPSHOT</version>
<!--可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性-->
<optional>true</optional>
</dependency>
排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本——不需要
<exclusions>
<exclusion>
<!--不用写版本-->
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
</exclusion>
</exclusions>
<dependency>
<groupId>com.yan</groupId>
<artifactId>maven_04_dao</artifactId>