Maven的仓库和索引

  1. 中央仓库:Maven的中央仓库http://repo1.maven.org/maven2/,该地址是内置与Maven源码中。其他的仓库,都是镜像。
  2. 索引:中央仓库带有索引文件以方便用户对其进行搜索,索引每周更新一次。
  3. 本地仓库:是建立在本地机器上的Maven仓库,本地仓库是中央仓库(或者说远程仓库)的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的Jar包版本在本地仓库没有,而且也不存在于远程仓库,Maven在构建的时候会报错,这种情况可能发生在有些Jar包的新版本没有在Maven仓库中及时更新。Maven缺省的本地仓库地址为${user.home}/.m2/repository。也就是说,一个用户会对应的拥有一个本地仓库。当然你可以通过修改${user.home}/.m2/settings.xml配置这个地址,也可以通过修改的Maven目录下${MAVEN_HOME}/conf/settings.xml配置本机全局本地仓库地址。
<settings>
    <localRepository>D:/work/resources/repository</localRepository>
</settings>

IntelliJ IDEA利用索引实现自动补全

在国内,由于网络原因,访问下载Maven仓库索引时,要么速度很慢,要么无法访问,这个我们的工作带来不便,所有我们一般都用Nexus构建私服。另外私服还有其他好处,比如利用私服更有利于对公司内部开发人员依赖的Jar包版本进行控制等。
中央仓库带有索引,为什么本地的IDEA也需要下载索引呢?那么直接看下图你就明白了,如果本地没有下载索引的话,在pom.xml文件中添加依赖是得不到任何提示的。
maven_after_update_maven_index_add_dependence .gif

IntelliJ IDEA配置Maven

IdeaMavenSetting.jpg

下载Maven索引

在配置完成之后就可以下载仓库索引了,注意这是一个非常耗时的过程,建议利用晚上或者出去午饭时间下载。下载过程及下载完成之后状态如下图所示。
IntelliJ_maven_download_local_index.png

利用本地Web服务作为索引下载服务器

  1. 首先下载如下2个文件:

  2. 启动本地Web服务,在其根目录下建立一个/maven2/.index的虚拟目录(注意:如果你使用的是Windows系统,可能无法建立.index件夹,必须使用DOS命令:mkdir .index),把上述两个文件拷贝至该虚拟目录下;
  3. 编辑host文件C:\Windows\System32\drivers\etc\hosts,在尾巴追加127.0.0.1 repo1.maven.org
  4. 现在回到IDEA上更新Maven插件索引;
  5. 将第三步中的host添加项移除。

参考文章:

标签: maven

添加新评论