Maven高级
依赖传递
直接依赖:在当前项目中通过依赖配置建立的依赖关系
间接依赖:被资源的资源如果依赖其他资源,当前项目简介依赖其他资源
依赖传递冲突问题
路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
两种易混淆的依赖关系
可选依赖:可选依赖指对外隐藏当前所依赖的资源---不透明
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> <optional>true</optional> </dependency>
排除依赖:排除依赖是指主动断开依赖的资源,被排除的资源无需指定版本---不需要
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> <exclusions> <exclusion> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </exclusion> </exclusions> </dependency>
聚合
作用:聚合用于快速构建maven工程,一次性构建多个项目/模块
<modules> <module>../项目名</module> <module>../项目名</module> <module>../项目名</module> <module>../项目名</module> </modules>
继承
作用:通过继承可以实现在子工程中沿用父工程中的配置
<parent> <