依赖的范围
compile引入的依赖 对main目录下的代码有没有效,main目录下的代码能不能用compile引入的依赖中的类等
以test引入的依赖,在main中是否可以使用
provided(已提供),有了就不要带到服务器上,打包时不带,不带带了可能就有冲突
这几个不需要担心,一般下包的时候会给你说用什么范围
依赖的传递性
比如需要100个jar包,可能导入几个jar包就可以,这几个jar包通过依赖的传递性把需要的其它jar包 导入
依赖的排除
A依赖B ,B依赖D的0.1版本,根据依赖的传递性,A依赖D的0.1版本
A依赖C ,C依赖D的0.6版本,根据依赖的传递性,A依赖D的0.6版本
因为A既导入了0.1版本又导入了0.6版本,不同版本的jar包导入相安无事还好,但是有时候会导致jar包的冲突
在A对B的依赖中,排除A对X的依赖,这样B对X的依赖没变
继承
比如说子工程有ABCD,ABCD都用到了同一个框架,为了保证ABCD用到的框架的jar包是同一个版本,那么就将这个jar包放到父工程,而且还可以实现一处修改处处生效。
工程创建好后,修改他的打包方式,并可以将他的依赖删除
就继承角度就是父子工程,从聚合角度就是总的工程和模块工程
查看子工程的pom.xml
'
在父工程中管理依赖
打开父工程的pom.xml
只不过不需要写version,version由父工程统一管理
以列表的形式查看依赖,以树的形式查看依赖 (mvn dependency:list)
配置自定义属性
在使用时就可以写成
实际意义
聚合
各个模块pro4组成了这个项目