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. 修改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代理:
-
<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文件夹内,删除文件 夹,可以起到重置该索引的效果。