第五章 坐标和依赖

依赖调解

传递性依赖一定会带来依赖冲突,如何解决冲突?例如,工程里有这样的依赖关系A->B->C->X(1.0)、A->D->X(2.0);在这两条传递依赖时有两个版本的x,到底使用那个版本?maven依赖调解的定义元则就是:路径最近者优先。如果第一原则没有解决问题,比如A->B->X(1.0)、A->C->X(2.0),对x的两条依赖路径是一样的,那么按照什么规则去选择呢?maven2.0.9开始,在依赖路径长度相等的情况下,在pom文件中依赖声明的顺序决定了谁会被最终加载,顺序最靠前的那个依赖优胜。

 

第六章 仓库

本地仓库,默认情况下,当你第一输入maven命令之后,就会在用户目录下生成.m2/repository/的仓库目录。(为什么是.m2呢,.开头的文件在linux系统中是隐藏的,如果要显示,需要使用ls -a命令)

如果需要修改本地仓库的目录,可以进入$MAVEN_HOME\conf\setting.xml进行编辑,搜索 "<localRepository>"即可找到要修改的地址。

之前提到过新增构件安装到本地仓库,使用的命令是mvn clean install.