原文地址:http://blog.csdn.net/lastsweetop/article/details/8553981
1仓库结构图
以下篇幅从下往上讲起
2本地仓库
本地仓库默认是用户目录下的\.m2\repository,用户级的配置文件settings.xml也放在这里。
但用户目录下载C盘,C盘一般都只跑个操作系统,个人仓库随着项目的积累会很大,放在C盘比较占用C盘空间,
如果需要更改本地仓库的放置目录的话,需要修改settings.xml文件
小贴士:那么在此插一个eclipse maven插件的小技巧,maven插件安装完毕后会使用插件内嵌的maven版本且是snapshot版的
snapshot代表不稳定,那么这是需要选择手动安装的maven版本目录,这个简单,只需再正确页面点Add添加,然后把原来
的内嵌版本勾掉,勾选手动版的即可,所涉及的页面如下:
那么细心的朋友就会发现下面的open file链接,那么点击就可以打开settings.xml文件,不用再每次去找settings.xml然后去修改。
因为settings.xml可能经常变动,eclipse的maven插件做的很贴心。
这里的settings.xml像图片上描述的那样是全局settings.xml,建议最好使用用户级的settingx.xml,当然这个eclipse maven插件也帮你
给出了一键打开功能,那么快捷方式看图
更改本地仓库目录只需在settings.xml文件中setting节点下增加一行即可
- <localRepository>D:\document\study\maven\repository</localRepository>
3远程仓库
如果学过git就非常理解远程仓库和本地仓库的区别,当然maven的远程仓库当然也有其特性。
maven的远程仓库有多种存在形式,中央仓库,其他远程仓库,镜像,私服
3.1中央仓库
中央仓库是默认的远程仓库,如果不做任何特殊配置那么将会从中央仓库下载依赖,这在
$M2_HOME/lib/maven-model-builder-3.0.4.jar里的org/apache/maven/model/pom-4.0.0.xml里做了指定,如下
- <repositories>
- <repository>
- <id>central</id>
- <name>Central Repository</name>
- <url>http://repo.maven.apache.org/maven2</url>
- <layout>default</layout>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
3.2其他远程仓库
那么添加一个其他的远程库只需在项目的pom.xml文件中添加以下配置即可
- <repositories>
- <repository>
- <id>jboss</id>
- <name>JBoss Repository</name>
- <url>http://repository.jboss.org/nexus/content/groups/public/</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- </releases>
- <layout>default</layout>
- </repository>
- </repositories>
snapshots false表示关闭jboss远程仓库的snapshots版本下载
releases true表示打开jboss远程仓库的release版本下载
那么测试下jboss仓库是否配置正确,添加一个jboss仓库独有的依赖即可,这里选用xom1.2,配置如下
- <dependency>
- <groupId>xom</groupId>
- <artifactId>xom</artifactId>
- <version>1.2</version>
- </dependency>
发现下载成功即可
远程服务器的验证,只需在settings.xml添加如下代码即可
- <server>
- <id>deploymentRepo</id>
- <username>repouser</username>
- <password>repopwd</password>
- </server>
id要与配置的远程服务器id对应比如jboss.
3.3镜像
镜像及将的maven依赖请求转发至相应服务器,配置如下
- <mirror>
- <id>mirrorId</id>
- <mirrorOf>repositoryId</mirrorOf>
- <name>Human Readable Name for this Mirror.</name>
- <url>http://my.repository.com/repo/path</url>
- </mirror>
镜像更为常用的作法是结合私服,如下配置
- <mirror>
- <id>mirrorId</id>
- <mirrorOf>*</mirrorOf>
- <name>Human Readable Name for this Mirror.</name>
- <url>http://my.repository.com/repo/path</url>
- </mirror>
3.4私服
私服一般采用nexus部署,这点另写文章单独介绍。
包括依赖部署至远程服务器也在私服篇单独介绍。