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. lerna----一个强大的专注组件库的管理工具

    最近在看关于lerna的资料,没有中文版api.简书上有一篇文章半英半汉,可以撸来看看. http://www.jianshu.com/p/63ec67445b0f

  2. VC++DLL动态链接库程序

    VC++DLL动态链接库程序 VC++DLL动态链接库程序 C++ DLL 导出函数 使用VS2017等IDE生成dll程序,示例如下: C++ DLL 导出类 1.导出类中第一种方法:简单导出类(不 ...

  3. SQL数据库—<7>事务、异常和游标

    事务 一.什么是事务能够保证数据的一致性的代码控制,要么执行提交,要么滚回事务的初始状态 二.事务的四大特性:ACIDA:原子性-------事务不可拆开,要么执行要么回滚无中间状态C:一致性---- ...

  4. React 全新的 Context API

    Context API 可以说是 React 中最有趣的一个特性了.一方面很多流行的框架(例如react-redux.mobx-react.react-router等)都在使用它:另一方面官方文档中却 ...

  5. linux 定时任务---给心爱的小姐姐发情书

    目录 1.计划任务基本概述 什么是crond? 为什么要用crond? 2.计划任务时间管理 crontab配置文件解析 crontab的时间编写规则 crontab命令选项 3.计划任务编写实践 使 ...

  6. DNS安装配置主从

    准备环境  关闭防火墙 挂载一下 更改配置文件 安装dns服务 更改配置文件  先复制保存一份

  7. Java集合类框架的最佳实践有哪些

    根据应用的需要正确选择要使用的集合的类型对性能非常重要,比如:元素的大小是固定的,而且能事先知道,我们就应该用Array而不是ArrayList. 有些集合类允许指定初始容量.因此,如果我们能估计出存 ...

  8. 【虚拟机】:"该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。"

    1.可能是由于上次使用虚拟机,没有正常关闭出现了这种情况,于是把问题复制粘贴搜了一下. 2.出现了如下可行的解决方法:把后缀名为.vmdk.lck的都删除掉. 3.然后再打开虚拟机就可以了.

  9. jsp详解(3个指令、6个动作、9个内置对象、11个隐式对象)

    jsp概述SP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP实际上就是Servlet.    jsp=html+jav ...

  10. cocos2D-X call JNIHelper

    #ifndef _WIN32 JNIEnv *j = JniHelper::getEnv(); if (j == nullptr || j == NULL) {test += "JNIEnv ...