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. .eslintrc.js相关配置

    module.exports = { root: true, //此项是用来指定javaScript语言类型和风格,sourceType用来指定js导入的方式,默认是script,此处设置为modul ...

  2. Linux查看软件安装路径,和文件的位置

    查看软件是否安装:rpm -qa|grep xx 列出软件安装包安装的文件:rpm -ql 直接使用rpm -qal |grep mysql 查看mysql所有安装包的文件存储位置 通过find去查找 ...

  3. 彻底干掉恶心的 SQL 注入漏洞, 一网打尽!

    来源:b1ngz.github.io/java-sql-injection-note/ 简介 文章主要内容包括: , name); 还有一些情况,比如 order by.column name,不能使 ...

  4. windows10 Bash on Ubuntu 安装pygame

    在bash命名行下执行以下三个命令1.下载pip2.apt-get install python3-setuptools3.python3 setup.py install以管理员身份运行cmd,执行 ...

  5. NULL合并操作符??

    参考官方手册: /** * NULL合并操作符 ?? */ // $a, $b, $c都未声明和定义 var_dump($a??$b??$c); // NULL // $a为数组,$b为100,$c为 ...

  6. 使用api获取数据————小程序

    使用api获取数据----小程序 onLoad: function (options) { //打开页面即执行. let that = this; wx.request({ //建立链接 url: ' ...

  7. Redis主从配置,哨兵,集群的设计原理

    一 前言 谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转 ...

  8. Java多线程的理解和实例

    编写具有多线程程序经常会用到的方法:run(), start(), wait(), notify(), notifyAll(), sleep(), yield(), join() 还有一个关键字:sy ...

  9. 2019HDU多校第三场 Distribution of books 二分 + DP

    题意:给你一个序列,你可以选择序列的一个前缀,把前缀分成k个连续的部分,要求这k个部分的区间和的最大值尽量的小,问这个最小的最大值是多少? 思路:首先看到最大值的最小值,容易想到二分.对于每个二分值m ...

  10. loadrunner 11安装教程

    见百度经验,大神教程 https://jingyan.baidu.com/article/da1091fb199da7027849d6ff.html