maven仓库简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://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>
这里即是将仓库id为repositoryId的所有请求转发至http://my.repository.com/repo/path镜像服务器

镜像更为常用的作法是结合私服,如下配置
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>*</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
这里即是将对所有仓库的请求转发至私服http://my.repository.com/repo/path

3.4私服

私服一般采用nexus部署,这点另写文章单独介绍。
包括依赖部署至远程服务器也在私服篇单独介绍。

没有更多推荐了,返回首页