Maven Repository 有的标签上写着"EBIPublic“是什么意思

上面配置的是别人公开仓库做为私有仓库配置profile需要激活,一是通过命令参数:

就是-P后面加上profile的id就激活对应的id配置

有朋友可能会问,上面不是用了别人的服务器么怎麼还叫私有仓库?

我只想说朋友,长在新中国和平社会共建共享,别人的服务器怎么就不当做自己的私有仓库了!

对于霸气的maven来说除了中央仓库,其他的都叫私有仓库

如果,你实在心有芥蒂还可以使用镜像(mirror)

上面的这个mirror配置就相当于,给下面这个id为central中央仓库当做镜潒

  1. *:匹配所有仓库请求,即将所有的仓库请求都转到该镜像上
  2. repo1,repo2:repo1和repo2的请求重定向到镜像使用逗号分隔多个远程仓库
  3. *,!myrep:匹配所有仓库请求,myrep除外使用感叹号将仓库从匹配中排除
  4. external:*: 除了本地缓存jar包,所有从镜像仓库拉取

注意:mirror只会有一个生效配置多个mirror的情况下,默认第一個生效如果当前一个mirror链接不可用才会顺序查找下一个。

不要想通过mirror来实现这个仓库没有找到jar包,就在另一个仓库找这种功能

查找jar依賴流程与顺序

在maven执行的时候,如果有依赖的jar包:

  1. 如果本地仓库没有找到且配置了私有仓库,就会去私有仓库查找

每个仓库都可能有镜像如果仓库有镜像,就会通过镜像(mirror)去找如果仓库配置了镜像,镜像没有找到就算仓库中有对应jar,也不会去仓库找了

不用去区分和记憶什么setting、pom、profile的仓库查找优先级,哪些考虑变量太多很多测试并不充分,结论也是错的

只需要按正常的逻辑记住:找本地仓库,如没有找私有仓库没有找中央仓库,仓库有镜像就通过镜像找

至于setting、pom、profile,按逻辑也很好记忆肯定是按使用方便的顺序。

想一想如果命令荇的动态参数profile不能覆盖pom,那要这个参数什么用如果pom不能覆盖setting,那么就是工程的配置覆盖不了全局配置那不是太扯了。

私有仓库有些昰需要授权的,比如访问一下不公开的jar包的时候多半是需要用户名和密码的,server就是配置相同id对应仓库repository的用户名和密码的配置项

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信