在网络受限的情况下,使用nexus总会遇到这么两个问题,让你头疼。
我头疼过了,为了不让大家头疼,把解决方案放在这里,供大家参考。
问题一、背景:
由于网络原因,Nexus无法更新远程仓库的索引。
解决方案1:
1、首先在能连接远程仓库的机器上更新索引,建议使用eclipse maven插件,开启full Index,然后更新索引,需要等一段时间。
2、找到这个目录:本地repository\.cache\m2e\1.4.0\26522e0d83a422eed93329ece7565cfc(找时间最新的一个)\full
里面有些这样的文件。
%nexus_home%\sonatype-work\nexus\indexer\central-ctx
拷贝之前清空 central-ctx 文件夹
4、 重新启动nexus
解决方案2:
1、在本地直接连接远程仓库,下载如下两个文件:
http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.gz
我的经验是,从eclipse maven插件直接更新索引,会自动下载这两个文件。
2、找一个Apache Tomcat服务器,在其根目录(ROOT)下建立一个 /maven2/.index 的虚拟目录(注意: 如果你使用的是XP系统, 可能无法建立.index文件夹, 在cmd下使用mkdir 命令可创建),把上述两个文件拷贝至该目录下;修改Tomcat的服务端口为80.
3、编辑 c:\WINDOWS\system32\drivers\etc\hosts 文件,在文件中加入:
127.0.0.1 repo1.maven.org
注:127.0.0.1 为步骤2的Apache Tomcat服务器IP地址。
4、登陆Nexus, 在远程仓库上右键选择Update Index即可
5、移除之前在 hosts 文件中添加的内容。
问题二、背景:
Nexus能更新索引,但是当我用eclipse中使用maven构建的时候,会到nexus下载jar,而nexus上只有索引,没有jar,理论上,应该去远程仓库下载,但由于网络原因无法下载下来。
如果不使用私服,我自己直接连接中央仓库就可以下载到这些jar,但我必须保证nexus上也必须有这些jar,因为公司不光我自己用这些jar,很多同事也要用到,不能每个人都自己去中央仓库下载,那太麻烦了。
解决方案:
1、首先在nexus上更新索引,保证其索引是最新的。
2、然后使用本地maven,直接连接中央仓库,构建一次自己的项目,这时maven会自动下载所需要的jar。
3、把本地仓库拷贝到nexus的仓库中即可。位置:%nexus_home%\sonatype-work\nexus\storage\相应的库文件夹下即可。