【maven实战】12-从仓库解析依赖的机制

扫码关注公众号:Java 技术驿站

发送:vip
将链接复制到本浏览器,永久解锁本站全部文章

【公众号:Java 技术驿站】 【加作者微信交流技术,拉技术群】
免费领取10G资料包与项目实战视频资料

当本地仓库没有依赖构件的时候,maven会自动从远程仓库下载;当依赖版本为快照版本的时候maven会自动找到最新的快照。这背后的依赖解析机制可以概括如下:

1当依赖的范围是system的时候maven直接从本地文件系统解析构件。

2根据依赖坐标计算仓库路径后,尝试直接从本地仓库寻找构件,如果发现相应构件则解析成功。

3在本地仓库不存在相应构件的情况下,如果依赖的版本显示的发布版本构件,如1.2,2.1-beta-1等,则遍历所有的远程仓库,发现后下载并解析使用。

4如果依赖的版本是RELEASE或者LATEST,则基于更新策略读取所有远程仓库的元数据groupId/artifactId/maven-metadata.xml,将其与本地仓库对应元数据合并后计算出RELEASE或者LATEST真实的值,然后基于这个真实的值检查本地和远程仓库如步骤2和3。

5如果依赖的版本是SNAPSHOT,则基于更新策略读取所有远程仓库的元数据groupId/artifactId/version/maven-metadata.xml,将其与本地仓库对应元数据合并后得到最新快照版本的值,然后基于该值检查本地仓库或者从远程仓库下载。

6如果最后解析得到的构件版本时间是时间戳格式的快照,如1.4.1-20091104.121450-121,则复制其时间戳格式的文件至非时间戳格式,如SNAPSHOT,并使用该非时间戳格式的构件。

赞(0) 打赏
版权归原创作者所有,任何形式的转载请联系博主:daming_90:Java 技术驿站 » 【maven实战】12-从仓库解析依赖的机制

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏