Eclipse中Maven*仓库索引的建立

 

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

问题:

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

Eclipse中Maven*仓库索引的建立

原因:应该是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. 修改maven的默认连接地址为阿里云的镜像

1)copy一个settings.xml(在maven安装目录下conf/目录)到C:/Documents and Settings/username/.m2目录,

2) 修改settings.xml,在<mirrors></mirrors>中添加配置

<mirrors>

<mirror>

<id>alimaven</id>

<name>aliyun maven</name>

<url>http://maven.aliyun.com/nexus/content/groups/public/</url>

<mirrorOf>central</mirrorOf>

</mirror>

</mirrors>

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代理:

 
  1. <proxies>

  2. <!-- proxy

  3. | Specification for one proxy, to be used in connecting to the network.

  4. |

  5. <proxy>

  6. <id>optional</id>

  7. <active>true</active>

  8. <protocol>http</protocol>

  9. <username>proxyuser</username>

  10. <password>proxypass</password>

  11. <host>proxy.host.net</host>

  12. <port>80</port>

  13. <nonProxyHosts>local.net|some.host.com</nonProxyHosts>

  14. </proxy>

  15. -->

  16. <proxy>

  17. <id>optional</id>

  18. <active>true</active>

  19. <protocol>http</protocol>

  20. <host>localhost</host>

  21. <port>8080</port>

  22. </proxy>

  23. </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。

Eclipse中Maven*仓库索引的建立
5、移除之前在 hosts 文件中添加的内容。

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

    

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