Maven学习总结(18)——深入理解Maven仓库

转载 2016年05月31日 12:44:28

一.本地仓库(Local Repository)

本地仓库就是一个本机的目录,这个目录被用来存储我们项目的所有依赖(插件的jar包还有一些其他的文件),简单的说,当你build一个Maven项目的时候,所有的依赖文件都会放在本地仓库里,仓库供所有项目都可以使用

默认情况下,本地仓库在.m2目录,windows下的话就是你的用户名目录下的.m2目录

1.更新本地仓库目录

找到你的MAVEN_HOME目录下的conf/setting.xml文件,更新localRepository节点

<code class="prettyprint" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif; max-height:600px; display:block; overflow:auto; background-color:rgb(247,247,247)"><span class="tag" style="color:#8000;"><settings></span><span class="pln">
  </span><span class="com" style="color:gray;"><!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  --></span><span class="pln">

</span><span class="tag" style="color:#8000;"><localRepository></span><span class="pln">D:/maven/repo</span><span class="tag" style="color:#8000;"></localRepository></span></code>

 2.保存一下

完成了。新的本地仓库被放在了D:/maven/repo

看一下这个目录

 二.中央仓库(central repository)

当我们build一个Maven项目的时候,Maven会检查我们的pom.xml文件,来定义项目的依赖,然后Maven会在本地仓库里查找,如果没有找到,就去maven的中央库去下载,地址是

http://search.maven.org/#browse

看起来是这样的

注意啊,虽然这个是新的中央仓库,但有时候还是会从http://repo1.maven.org/maven/这个旧仓库下载东西,不过不要紧,理解就行了

三.远程仓库(Remote Respository)

在Maven中,当你在pom.xml中生命的依赖既不在本地库,也不在中央库的时候,就会报错。

1.例子

org.jvnet.localizer这个包仅在java.net的仓库里有(以前是,现在中央仓库也有了。但理解就行)

<code class="prettyprint" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif; max-height:600px; display:block; overflow:auto; background-color:rgb(247,247,247)"><span class="tag" style="color:#8000;"><dependency></span><span class="pln">
        </span><span class="tag" style="color:#8000;"><groupId></span><span class="pln">org.jvnet.localizer</span><span class="tag" style="color:#8000;"></groupId></span><span class="pln">
        </span><span class="tag" style="color:#8000;"><artifactId></span><span class="pln">localizer</span><span class="tag" style="color:#8000;"></artifactId></span><span class="pln">
        </span><span class="tag" style="color:#8000;"><version></span><span class="pln">1.8</span><span class="tag" style="color:#8000;"></version></span><span class="pln">
    </span><span class="tag" style="color:#8000;"></dependency></span></code>

当我们build的时候,会失败,并输出未找到错误信息

2.声明java.net仓库

为了告诉Maven从远程仓库里获取依赖,我们需要声明一个远程仓库,在pom.xml里这样写

<code class="prettyprint" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif; max-height:600px; display:block; overflow:auto; background-color:rgb(247,247,247)"><span class="tag" style="color:#8000;"><repositories></span><span class="pln">
	</span><span class="tag" style="color:#8000;"><repository></span><span class="pln">
	    </span><span class="tag" style="color:#8000;"><id></span><span class="pln">java.net</span><span class="tag" style="color:#8000;"></id></span><span class="pln">
	    </span><span class="tag" style="color:#8000;"><url></span><span class="pln">https://maven.java.net/content/repositories/public/</span><span class="tag" style="color:#8000;"></url></span><span class="pln">
	</span><span class="tag" style="color:#8000;"></repository></span><span class="pln">
    </span><span class="tag" style="color:#8000;"></repositories></span></code>

这样,Maven搜索依赖的顺序就是:

1)搜索本地仓库,没有找到,就去第2步,否则退出

2)搜索中央仓库,没有找到,就去第3步,否则退出

3)去Java.net远程仓库获取,没有找到,就报错,否则退出

补充:JBoss也有个远程仓库,可以如下配置:

<code class="prettyprint" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,serif; max-height:600px; display:block; overflow:auto; background-color:rgb(247,247,247)"><span class="tag" style="color:#8000;"><project</span><span class="pln"> ...</span><span class="tag" style="color:#8000;">></span><span class="pln">
    </span><span class="tag" style="color:#8000;"><repositories></span><span class="pln">
      </span><span class="tag" style="color:#8000;"><repository></span><span class="pln">
	</span><span class="tag" style="color:#8000;"><id></span><span class="pln">JBoss repository</span><span class="tag" style="color:#8000;"></id></span><span class="pln">
	</span><span class="tag" style="color:#8000;"><url></span><span class="pln">http://repository.jboss.org/nexus/content/groups/public/</span><span class="tag" style="color:#8000;"></url></span><span class="pln">
      </span><span class="tag" style="color:#8000;"></repository></span><span class="pln">
    </span><span class="tag" style="color:#8000;"></repositories></span><span class="pln">
</span><span class="tag" style="color:#8000;"></project></span></code>

Maven学习总结(18)——深入理解Maven仓库

一.本地仓库(Local Repository) 本地仓库就是一个本机的目录,这个目录被用来存储我们项目的所有依赖(插件的jar包还有一些其他的文件),简单的说,当你build一个Maven项目...
  • u012562943
  • u012562943
  • 2016年04月30日 09:52
  • 1773

Maven学习总结(17)——深入理解maven灵活的构建

一个优秀的构建系统必须足够灵活,应该能够让项目在不同的环境下都能成功构建。maven为了支持构建的灵活性,内置了三大特性,即:属性、profile和资源过滤。 1、maven属性  maven...
  • maguanghui_2012
  • maguanghui_2012
  • 2016年05月31日 12:51
  • 503

深入理解maven及应用

在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的b...
  • learner198461
  • learner198461
  • 2016年11月19日 14:46
  • 324

深入理解maven及应用(一):生命周期和插件

在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的b...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2014年07月02日 09:11
  • 4287

深入理解maven与应用(二):灵活的构建

深入理解maven及应用(一):生命周期和插件 参考官方url:http://maven.apache.org/guides/index.html  一个优秀的构建系统必须足够灵活,应该能够让项目...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2014年07月03日 14:11
  • 2552

Maven详解之仓库------本地仓库、远程仓库

maven的本地仓库和远程仓库,详解maven的远程仓库。 在实际开发中,快照版本的实际意义和作用。如何进行安全认证的配置?创建私服的好处,maven仓库依赖解析的机制...
  • wanghantong
  • wanghantong
  • 2014年08月11日 20:42
  • 274879

maven-Maven的坐标、仓库介绍及配置

转载原文地址: http://yanan0628.iteye.com/blog/2270344 1.什么是maven仓库?   1.1 仓库和构件   仓库指的是在某个位置统一存...
  • qq_36859415
  • qq_36859415
  • 2016年12月02日 14:42
  • 631

工作心得(一)——如何搭建本地的maven仓库

一眨眼工作了两年多了,大概两年前我写过第一篇技术文章,是个关于easyui tree的,刚才回去翻看了一下。。。。不忍直视,我心里只有一句话:这特么是什么玩意! 呵呵,相信大家也有这样的经历,工作一段...
  • Tomoyolq
  • Tomoyolq
  • 2016年01月16日 12:54
  • 2718

maven中央仓库大集合

1、maven 仓库地址: 共有的仓库 http://mvnrepository.com/   http://repo1.maven.org/maven2/ http://repository.j...
  • yzj578492228
  • yzj578492228
  • 2015年02月16日 14:52
  • 3769

Maven仓库搭建(一):一台HTTP服务器即可(Tomcat、Apache或Nginx)

作为一个Java老程序员,多多少少都会有一些自己写的各种常用代码,如果每写一个项目都把这些代码拷贝一份到新项目比较麻烦的,打成jar包引入到项目会方便很多。如果想让这些jar包能通过Maven引入进项...
  • xiao__gui
  • xiao__gui
  • 2016年09月22日 18:22
  • 6454
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Maven学习总结(18)——深入理解Maven仓库
举报原因:
原因补充:

(最多只允许输入30个字)