maven cloudara依赖下载

最近开发的项目使用到了cloudara的依赖,已经在pom.xml 中配置了cloudara的repository,但是还是无法下载

<repositories>
    <repository>
      <id>cloudera</id>
      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </repository>
  </repositories>

网上查看了maven的运行原理:

1.pom.xml里的repositories元素,里面可以包含多少repository(至少默认包含了中央仓库,
  该仓库总是在effective-pom里repositories元素的最后一个子元素),
  每个repository都有一个id(此id非常重要)。
2.maven获取真正起作用的repository集合流程:
     首先会获取pom.xml里的repository集合,然后在settings.xml里找mirrors元素
     如果repository的id和mirror的mirrorOf的值相同,则该mirror替代该repository,
     如果该repository找不到对应的mirror,则使用其本身。依此可以得到最终起作用的
     repository集合
3.关于maven如何查找pom.xml里dependencies里配置的插件,暂且不考虑本地仓库的存在,
  maven会根据最终的repository集合里依次查找,如果查到了就从该仓库下载,并且停止
  对后续repository的查找(找到了就停)。所以可以看出用户在pom.xml里配置repository时,
  repository的顺序还是挺重要的。注:从超级父pom里继承来的中央repository在effective-pom
  里总是为最后一个repository.

 对于寻找reposiotry的mirror的一些理解:
   在settings.xml里配置mirror里,应该将<mirrorOf>*</mirrorOf>放在最后一个---->最好这么做

 

由第2点可知,maven 会根据pom中cloudara repository 的id “cloudera” 去maven setting.xml 中查找对应的mirror,由于我的setting中配置了多个mirror 其 mirrorof设置为 *

<mirrorOf>*</mirrorOF> 在该mirror根本不存在cloudara的依赖,故下载错误

posted @ 2018-09-07 12:51  生心无住  阅读(849)  评论(0编辑  收藏  举报