(1)Maven分模块开发与设计:
当团队合作项目,做不同的功能模块时,一个模块要引用到另一个模块的功能,需要用到Maven分模块开发设计,接下来我将创建两个模块进行演示Maven分模块开发:
要如何引用得到呢?
(1)导入Maven_pojo模块的坐标:
Maven_pojo模块:
在Maven_高级模块中的pom.xml导入将要引用到的模块(Maven_pojo)的坐标:
(2)通过maven指令安装模块到本地仓库(install指令)
注:团队内部开发需要发布模块功能到团队内部可共享的仓库中(私服)
被引用的模块(Maven_pojo)进行操作install指令:
当出现BUILD SUCCESS就表示操作成功了!
然后Maven_高级模块就可以引用Maven_pojo模块中的任何功能了!
(2)依赖管理:
(2.1)依赖传递性:
若第一个模块依赖了第二个模块,而第二个模块又依赖了第三个模块 ,进而第一个模块可以引用第三个模块的功能。
(2.2)依赖冲突问题:
在同一个层次上依赖不同版本的依赖,会根据先后配置,后配置的较为优先。
(2.3)可选依赖:(你现在的模块用的东西,不想给别人用,说得简单一点就是我隐藏我自己的依赖,别人知道和不知道我用过它)控制当前资源能不能被别人发现。
可选依赖是隐藏当前工程所依赖的资源,隐藏后对应的资源将不具有依赖传递性。
<dependency>
<groupId>com.lingnan</groupId>
<artifactId>Maven_pojo</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 可选依赖是隐藏当前工程所依赖的资源,隐藏后对应的资源将不具有依赖传递性-->
<optional>true</optional>
</dependency>
将optional属性设置为true即可。
(2.4)排除依赖:(用了别人的东西,发现有些东西不想用,你可以把它排除掉)主动断开依赖的资源,是隐藏当前资源对应的依赖关系, 我所依赖的工程所带的依赖,不用的情况下进行排除
<!-- 依赖dao运行-->
<dependency>
<groupId>org.example</groupId>
<artifactId>Maven_Dao</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 排除依赖是隐藏当前资源对应的依赖关系 我所依赖的工程所带的依赖 不用的情况下进行排除-->
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
设置exclusions属性,将要排除的依赖写在exclusion属性中即可。
(3)聚合:
图例:
(4)继承: