Eclipse中Maven中央仓库索引的建立

作为新手,在maven中导入jar包可能会遇到问题,网上有很多资源讲如何导入。但面临的第一个问题时,有的IDE中并不会出现正常的select界面,需要配置下:

问题:

如图,点击“Add”添加时会出现如下问题

原因:应该是maven自动下载index组件的功能没有开启,查看

这一步很重要:

“Window”
–> “Preferences” and choose Maven in the left side.
勾选Download repository index updates on
startup

解决:

“Window” —> “Show View” —> “Maven Repositories” —> “Global
Repositories” 

选择 “central” click right and “Update Index”解决问题。

问题产生如下:
因为单位使用了过滤,访问Internet时,超过10M的内容就拒绝。
因为maven插件在初始时,需要下载Maven的index文件,这个文件比较大,有38M多,下载不成功。
所以造成使用Maven添加依赖项时(Add Dependency)时,没有提示项目可用,并且在Console中,输出:
Unable to update index for central|http://repo1.maven.org/maven2 。

决办法,手动下载索引文件,本地模拟部署中央仓库,更新索引后,关闭本地模拟部署中央仓库

1、首先手动去官网下载这两个文件,

http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties
http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.gz
如果不行,可以在云盘中下载,http://yunpan.cn/c6UzFhqkYRfU5
(提取码:8237),但可能不是最新的。

2、然后把这两个文件放到本地tomcat的目录中去,我是放在webapps\ROOT\maven2\.index\目录中
     (这里说明一下,前面带点的文件夹不能用右键新建,要打开cmd窗口,用命令mkdir .index创建)
        

3、配置本地maven的索引加载环境
  方式一:(推荐)
     接着增加一个mirror,修改tomcat的端口号为80,这样就能直接用http://localhost/maven2/.index访问到索引 
<mirror>
      <id>nexus-local</id>
      <mirrorOf>central</mirrorOf>
      <name>nexus local</name>
      <url>http://localhost/maven2/</url>
</mirror>
    如果使用添加mirror的方式,那么可以不修改tomcat端口,因为配置了mirror后,就会代理mirrorOf中配置的仓库central。

  

方式二:直接将repo1.maven.org映射到本地127.0.0.1
 central的默认的地址是:http://repo1.maven.org/maven2 

编辑
c:\WINDOWS\system32\drivers\etc\hosts 文件,在文件中加入:
 
127.0.0.1    repo1.maven.org 

然后修改tomcat的端口号为80,这样就能直接用http://localhost/maven2/访问到本地tomcat中的索引 
注:127.0.0.1 为步骤2的Apache Tomcat服务器IP地址。 



方式三:设置代理(这样方式没有亲自实践,网上收集)
copy一个settings.xml到C:/Documents
and Settings/username/.m2目录,并修改settings.xml文件,添加一个http代理:

<proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>localhost</host>
      <port>8080</port>
    </proxy>
  </proxies>

4、在Eclipse中,更新setting文件,打开 Maven Repositories 面板,在 Global Repositories –> central 项上,点右键,Rebuild Index 即可。
   
 注意:
           如果发现索引没有更新,请检查是否开启了启动eclipse自动更新索引。

“Window” —> “Show View” —> “Maven Repositories” —> “Global
Repositories” 

选择 “central” click right and “Update Index”解决问题。

然后再次Rebuild Index 或者重启eclipse。


5、移除之前在 hosts 文件中添加的内容。

6、(可选)把Properties中Maven项的 Download repository index updates on starup 选项去除。

    

补充一点:
1.有兴趣的同学可以看看“D:\workspace_eclipse\.metadata\.plugins \org.maven.ide.eclipse\nexus”这个目录,插件的索引内容都记录在此,分别在local和central文件夹内,删除文件 夹,可以起到重置该索引的效果。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *