码迷,mamicode.com
首页 > 其他好文 > 详细

Maven学习笔记(二):Maven仓库

时间:2014-07-24 14:35:05      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   文件   re   

Maven仓库的知识点比较少,理解起来也很简单。

仓库只有两类:本地仓库和远程仓库。所谓本地仓库就是自己机器上的仓库,在setting.xml文件中进行配置:

1 <localRepository>E:/MavenStore</localRepository>

本地仓库中存储的就是在使用Maven解析项目时从远程仓库下载的依赖和自己安装的一些构建。

远程仓库很明显就是网络上的仓库,存储在一个神秘的地方(好吧,其实我是不知道在哪里)。当Maven解析项目时,如果本地没有需要的依赖,就会自动去中央仓库下载,再找不到就报错。

所以远程仓库可以这么细分一下:

-- 中央仓库 (Maven世界的核心,提供了绝大多数的依赖支持。Oracle的JDBC这种有版权的除外)

-- 私服 (私服就是一个搭建在本地或者局域网内的中央仓库,用于代理外部仓库,可以更快更方便的获取依赖,同时也能减轻中央仓库的压力,中央仓库只有一个,且用且珍惜)

-- 公共仓库 (用于对中央仓库查漏补缺,比如JBOSS的公共库这些)

 

所以获取依赖的顺序是:本地仓库——私服——中央仓库

 

上面说到,如果中央仓库没有需要的依赖,那么我们会去公共库获取,那么我们怎么和公共库勾搭上呢?毫无疑问,在项目构建过程中,我们能玩儿的最高级的东西就是pom文件了,执行以下配置:

 1 <repositories>
 2       <repository>
 3           <id>jboss</id>
 4           <name>JBoss Repository</name>
 5           <url>http://repository.jboss.com/maven2/</url>
 6           <releases>
 7               <!-- 表示支持下载发布版本的依赖 -->
 8               <enabled>true</enabled>
 9               <!-- 设置检查更新的频率(never:从不   always:每次构建时检查   daily:每天   interval:n  每n分钟检查一次) -->
10               <updatePolicy>daily</updatePolicy>
11               <!-- 检查校验和验证出错时的策略(warm:警告   fail:报错   ignore:忽略) -->
12               <checksumPolicy>ignore</checksumPolicy>
13           </releases>
14           <snapshots>
15               <!-- 表示不支持快照版本的依赖下载 -->
16               <enabled>false</enabled>
17           </snapshots>
18           <!-- 使用默认布局(布局简单理解就是按什么规则来构造依赖存储的物理路径) -->
19           <layout>default</layout>
20       </repository>
21 </repositories>

另外,类似JBoss这种远程仓库是可以随便访问的,但是如果在局域网内的私服上,一般来讲,不是什么人都可以进入的,所以这时候私服上的仓库会设置访问拦截,只有拥有认证信息的才能进行访问,这时就需要配置认证信息,这个配置在setting.xml中进行:

1 <servers>
2     <server>
3         <!-- id和仓库的id对应 -->
4         <id>test-repository</id>
5         <username>passport</username>
6         <password>123456</password>
7     </server>
8 </servers>

特别注意,server的id一定要和要访问的仓库的id一致,这是一对一关联。

 

再来看看关于Maven的版本相关知识。在刚开始学习的时候我也很郁闷,版本号嘛,随便写咯,还搞什么正式版、快照版。随着学习才发现,这一机制很好很强大,真是萌萌哒。快照版本机制的强大就在于,我们把A设置为SNAPSHOT后,每次更新A时,Maven会自动在文件后面加上时间戳,而A被其他项目获取时,Maven会将最新一次的改动开发下载,这样就保证了依赖A的项目随时拿到的都是能用的、而且是最新版本的A。等开发完成后,再把A的版本换成正式版,就一切OK了。

 

Maven里还有一个东西叫镜像,镜像类似于一个拷贝。比如亚马逊中国就是亚马逊在中国的一个镜像,因为两者提供的功能基本是一样的,而在天朝由于方教授的原因,访问亚马逊中国明显会更加方便。所以镜像就是这么一个东西。

 

最后是福利,可能初学Maven大家和我有一样的疑问,尼玛这么多以来,我特么怎么记得他们的坐标啊,卧槽。所以,仓库搜索服务就诞生了。

-- http://repository.sonatype.org/  在这里直接输入依赖项目的名称,就能给你他的坐标,复制粘贴就OK了。

-- http://www.jarvana.com/jarvana 作用同上,功能都差不多

Maven学习笔记(二):Maven仓库,布布扣,bubuko.com

Maven学习笔记(二):Maven仓库

标签:style   blog   http   color   使用   os   文件   re   

原文地址:http://www.cnblogs.com/jasongan/p/3865288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!