我们有时候经常需要将本地的包deploy到私服上去,可能是snapshot的,也可能是release的,具体逻辑如下
deploy会涉及到两个仓库,一个是包下载仓库,一个是包上传仓库,完成一次deploy,我们要清楚这两个标签内的内容
- 包下载路径是从maven的settings文件的标签内配置的仓库下载的
- 包上传是根据distributionManagement发布管理标签上传的
但是不同的deploy方式,会走不同的配置文件,我们需要关注一下
包下载
第一种方式
包下载,通过terminal命令mvn clean deploy
,这个时候包下载仓库
默认读取的是本地maven环境变量配置的settings文件的标签下的仓库,而不是IDEA的settings菜单配置的关联的settings文件,如果你更换了settings文件,还想deploy,应该通过第二种方式。
第二种方式
通过IDEA右侧的maven模块的Lifecycle功能,选择clean deploy功能,这个时候包下载仓库
走的就是你在IDEA的settings菜单配置的关联的settings文件里的标签下的仓库。
包上传
包上传路径走的是项目里的文件的distributionManagement标签,这个标签要么在当前模块的里面,要么在父模块的xml里面,或者是在依赖的parent工程内部的distributionManagement标签。
这个标签通过有两个内部标签,一个是repository标签,也是默认的仓库,通过作为release仓库,一个是snapshotRepository标签,是快照仓库,当你的包版本带了snapshot之后,就会走快照仓库。
里面的id字段,对应的就是文件里面的server标签的id字段,有没有deploy权限,就看这里有没有配置的账号了
我们可以观察下,自己项目的包上传与包下载,对应的地址。