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配置被部署的仓库地址,如下图实例:

实用maven笔记三-仓库的更多相关文章

  1. 实用maven笔记一概念&构建

    maven,作为我现在每天都会使用的工具,却发现我还有很多地方了解的迷迷糊糊.老大就曾说过我的一个问题在于,做事情不够精细.大概就是太浮于表面吧.最近突然非常想把maven撸一遍.豆瓣搜了下高分书籍, ...

  2. 实用maven笔记二-信息&依赖管理

    目前我经历的公司的主要项目管理工具都是maven,maven除了是一个实用的构建工具外,也是一个功能强大的项目管理工具.其管理功能分为信息管理和依赖管理.通过pom.xml文件实现. 信息管理 信息管 ...

  3. 实用maven笔记四-打包&其他

    通过使用maven的生命周期和丰富多样的插件,可以方便的将项目代码编译打包为自己需要的构件. maven默认项目主代码位置src/main/java目录,测试代码位置src/test/java目录.主 ...

  4. maven学习(三)——修改maven本地默认仓库

    修改从Maven中心仓库下载到本地的jar包的默认存储位置 从Maven中心仓库下载到本地的jar包的默认存放在”${user.home}/.m2/repository”中,${user.home}表 ...

  5. Maven实战读书笔记(二):Maven坐标与仓库

    2.1 Maven坐标 Maven坐标是Maven用来表示一个组件依赖的标示. Maven通过下面几个元素定义坐标:groupId.artifactId.version.packaging.class ...

  6. maven建立本地仓库

    maven 建立本地仓库 博客分类: java,maven,nexus   前面我讲到为什么要使用 Maven, Maven 的安装,以及 如何与 IDE 集成等,前面的介绍可以认为是一个 Hello ...

  7. Maven实战三

    转载:http://www.iteye.com/topic/1123228 1. 三套生命周期     Maven拥有三套相互独立的生命周期,它们分别为clean,default和site. 每个生命 ...

  8. Maven(三)在Eclipse中使用Maven与Maven坐标

    这一篇讲解一下在eclipse中使用maven,在一些高版本的eclipse中是自带maven插件的.所以这里就不在讲解怎么安装插件了. 接下来我们创建一个MavenFirst项目 一.在Eclips ...

  9. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

随机推荐

  1. TypeError: write() argument must be str, not bytes报错

    TypeError: write() argument must be str, not bytes 之前文件打开的语句是: with open('C:/result.pk','w') as fp: ...

  2. 2018前端面试总结,看完弄懂,工资少说加3K | 掘金技术征文

    2018前端面试总结,看完弄懂,工资少说加3K | 掘金技术征文:https://juejin.im/post/5b94d8965188255c5a0cdc02

  3. leetcode.双指针.680验证回文字符串-Java

    1. 具体题目 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 示例 1: 输入: "aba" 输出: True 示例 2: 输入: "abca&q ...

  4. unity碰撞检测(耗费性能)

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class PengZhua ...

  5. 记一次Xshell配置ssh免密登录时的问题

    问题: 今天在配置SSH免密登录连接自己的阿里云服务器,在将RSA加密生成的公钥放到服务器后,用Xshell连接服务,出现所选的用户密钥未在远程主机上注册这样的提示,一时懵逼,不知所措,后面终于找到了 ...

  6. LeetCode Array Easy 414. Third Maximum Number

    Description Given a non-empty array of integers, return the third maximum number in this array. If i ...

  7. mac OS 安装 Homebrew及常用命令

    Homebrew  是由国外大神 Max Howell 开发的一款包管理工具,类似Debian的apt,他可以安装任何你想安装的东西. 安装方法 命令行输入 /usr/bin/ruby -e &quo ...

  8. rabbitmq的管理软件以及PHP7安装rabbitmq的

    rabbitmq-server管理软件的安装 1.mac下载rabbitmq-server brew install rabbitmq 2.启动服务rabbitmq-server rabbitmq-s ...

  9. Codeforces 1195E OpenStreetMap 单调队列套单调队列

    题意:给你一个n * m的矩阵,问所有的a * b的子矩阵的最小的元素的和是多少.题目给出了矩阵中的数的数据生成器. 思路:如果这个问题是1维的,即求所有区间的最小元素的和,用单调队列O(n)就可以做 ...

  10. windows下基于(QPC)实现的微秒级延时

    1.为什么会写windows下微秒级延时 在上一篇 实现memcpy()函数及过程总结 中测试memcpy的效率中,测试时间的拷贝效率在微秒级别,需要使用微秒级时间间隔计数. windows下提供Qu ...