实用maven笔记三-仓库

maven管理依赖的一个很重要的基础在于,其维护了收集大量依赖jar包的仓库。

maven的仓库分类为本地仓库和远程仓库。

构件在仓库的路径大致为:groupId/artifactId/version/artifactId-version-classifier.packaging。可通过构件的坐标寻找依赖的路径。

 

本地仓库

本地仓库表示项目代码执行所在的服务器用户下维护的仓库,其默认地址为user/.m2/repository/,可通过修改settings.xml中的localRepository元素修改。

仓库寻址优先级为本地仓库-远程仓库。当maven在本地仓库中找不到依赖构件时,会进行远程下载。

可通过maven clean install 将项目输出的jar安装到本地maven仓库。

 

远程仓库

远程仓库又分为私服远程仓库和maven内置的中央仓库。当maven需下载构件时,首先从私服请求,若私服上不存在该构件,则从外部远程仓库下载后缓存至私服,再为maven的下载请求提供服务。

远程仓库可在settings.xml中配置,示例如下:

 

其中,

  1. server用于配置仓库的用户名密码(私服可能需要用),server-id需与repository的id保持一致

  2. mirrors表示仓库的镜像,mirrorOf元素表示配置为某远程仓库的镜像,为远程repository的id,可使用*匹配所有远程仓库。注意当镜像不稳定时会导致maven无法下载构件

  3. repository包含id/name/url/releases/snapshots等元素,id唯一,若重复会被覆盖,Maven自带中央仓库的id为central;url指向仓库地址,基于http协议

  4. snapshot表示快照版本:maven会自动为snapshot版本的构件打上时间戳,该时间戳可保证该版本不断开发更新时,依赖方也能及时找到该版本的最新文件

可通过mvn clean deploy命令将项目的构建输出文件部署到远程仓库,但部署前需在pom配置被部署的仓库地址,如下图实例:

 

posted @ 2019-05-20 19:15  suntingme  阅读(197)  评论(0编辑  收藏  举报