一、分模块开发与设计
意义
将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享
其他的将其拆分也是一样的步骤
分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分
二、依赖管理
1、依赖传递
依赖具有传递性:
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
2、依赖传递冲突问题
路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
3、可选依赖(“别人用我的”)
可选依赖指对外隐藏当前所依赖的资源—-——不透明
<dependency> <groupId>com.itheima</groupId> <artifactId>maven_03_pojo</artifactId> <version>1.e-SNAPSHOT</version> <! --可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性--><optional>false</optional> </dependency>
4、排除依赖(“用别人的”)
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本--不需要
排除依赖资源仅指定GA即可,无需指定V
<dependency>
<groupId>com. itheima</groupId>
<artifactId>maven_04_dao</artifactId>
<version>1.0-SNAPSHOT</version>
<! --排除依赖是隐藏当前资源对应的依赖关系-->
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupid>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>