Maven坐标与仓库

2.1 Maven坐标

Maven通过下面几个元素定义坐标:groupId、artifactId、version、packaging、classifier.

groupId:定义当前Maven项目隶属的实际项目。不应该是组织或公司(一个公司有很多项目,每个项目有很多模块)。

artifactId:定义实际项目的一个Maven模块,推荐使用实际项目名称作为前缀。

version:定义Maven项目当前所处的版本。

packaging:定义Maven项目的打包方式,可选的有:jar(默认)、warpom,不同的打包方式会影响构建的生命周期。

classifier:定义构建输出的一些附属构建,如javadocsources

2.2 Maven仓库

Maven坐标是一个构件的逻辑表示,构件的物理表示是文件,Maven通过仓库来统一管理这些文件。

得益于坐标机制,Maven项目能够以统一的方式来使用任何构件,在此基础上,Maven可以在某个位置统一存储所有Maven项目共享的构建,这个统一位置就是仓库。

2.2.1 仓库的分类

Maven中的仓库分为:本地仓库和远程仓库。

Maven根据坐标寻找构件时,先查看本地仓库是否存在该构件,存在则直接使用;否则就查找远程仓库,找到之后就下载到本地仓库;本地和远程都没找到,直接报错。

仓库的分类

中央仓库是Maven核心自带的远程仓库,含绝大多数开源的构件;

私服是在局域网搭建的仓库服务器,用于代理外部的远程仓库,可以节省带宽和时间,内部的项目还能部署到私服供其他项目使用;使用私服可以加速Maven构建以及提高稳定性,内网访问不需要依赖于网络。

其他公共服,如阿里云等。

本地仓库:配置路径${M2_HOME}/conf/settings.xml,默认是${user.home}/.m2/repository.

构件进入本地仓库有两种方式:Maven从远程仓库下载到本地仓库;通过在项目执行mvn install安装到本地。

Maven而言,用户的本地仓库只有一个,但可以配置访问很多远程仓库。而中央仓库是默认的远程仓库,在$M2_HOME/lib/maven-model-builder-{version}.jarorg/apache/maven/model/pom-4.0.0.xml文件定义了,该POM也被称为超级POM

2.2.2 仓库的布局

构件在Maven仓库里的存储路径为:{groupId}/{artifactId}/{version}/{artifactId-version.packaging}

2.2.3 远程仓库的配置

通过POM文件的<repositories><repository>元素可以配置远程仓库,如:

<repositories>

   <repository>

     <id>jboss</id>

     <name>jboss repository</name>

     <url>http://repository.jboss.com/maven2/</url>

     <releases>

       <enabled>true</enabled>

     </releases>

     <snapshots>

       <enabled>false</enabled>

     </snapshots>

     <layout>default</layout>

   </repository>

 </repositories>

<id>:必须是唯一的,默认的中央仓库id是central,如果使用了该id,会覆盖中央仓库配置。

<url>:执行仓库的地址

<releases> <enabled>:开发发布版本支持

<snapshots> <enabled>:关闭快照版本支持

<layout>:值为default表示仓库的布局是Maven 2及Maven 3,而不是Maven 1.

相比于发布版本,快照版本还有下面两个属性:

<snapshots>

 <enabled>true</enabled>

 <updatePolicy>daily</updatePolicy>

 <checksumPolicy>ignore</checksumPolicy>

</snapshots>

<updatePolicy>:更新策略,默认daily,可选择有neveralwaysinterval:X (X分钟检查一次)。

<checksumPolicy>:Maven检查校验和的策略,默认值是warn(校验不通过时警告),可选择还有fail(校验不通过时构建失败)、ignore(忽略校验错误)

2.3 镜像

如果仓库X可以提供仓库Y存储的所有内容,则认为X是Y的一个镜像。关于镜像的配置可以在${M2_HOME}/conf/settings.xml中进行配置:

<mirrors>

  <mirror>

     <id>nexus-aliyun</id>

     <mirrorOf>*</mirrorOf>

     <name>Nexus aliyun</name>

     <url>http://maven.aliyun.com/nexus/content/groups/public</url>

   </mirror>

 </mirrors>

<mirrorOf>:匹配远程仓库的规则,匹配成功,则使用该镜像进行代理

Remark:由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务时,Maven仍将无法访问被镜像仓库,因而将无法下载构件。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • |-1-更新内容[6.从仓库解析依赖的机制(重要)] 1Maven仓库作用 仓库用来存储所有项目使用到构件,在ma...
    zlcook阅读 6,018评论 0 25
  • 目前在看nexus私服章节的知识时需要用到仓库与镜像的知识,正好通过简书把仓库和镜像章节的笔记整理一下 仓库 ma...
    小炼君阅读 1,267评论 0 48
  • 1.POM文件 modelVersion:POM 模型的版本 groupId:项目属于哪...
    mecury阅读 982评论 0 0
  • 最近的生活鸡飞狗跳如履薄冰,whatever,一切都会慢慢好起来的,保持微笑保持希望。加油!
    嘟嘟妈咪玲阅读 93评论 0 0
  • 产品的自我管理,主要分为四大类:情绪管理、时间管理、目标管理、知识管理。 (1)情绪管理 这是一种善于掌握自我,善...
    楚木风起阅读 447评论 0 0