我在局域网内部署了一个sonatype nexus服务器,将一些远程存储库映射到我的公共存储库:
alt text http://img576.imageshack.us/img576/5517/7875d01884ad4234a5b02e2.png
第一个问题是,为什么这些存储库不与“真实”存储库同步? 例如,我将maven central(http://repo1.maven.org/maven2)映射到“central”,但是当我浏览http://smallufo:8081/nexus/content/repositories/central/org/springframework/时,包不完整,在http://repo2.maven.org/maven2/org/springframework/中,有大量的工件,但我只有一些:
alt text http://img63.imageshack.us/img63/6163/31beec445d6b4e9eb96beba.png
版本很旧...... 例如:spring-core只有2.5.6.SEC01,但最新版本是3.0.2.RELEASE。 我的maven客户似乎只能找到旧的文物...... alt text http://img199.imageshack.us/img199/3872/maven.gif
“central”是一个代理目录,它应该与远程服务器相同。我试图将“Expire Cache”,“ReIndex”,“Incremental ReIndex”整个“中心”: alt text http://img23.imageshack.us/img23/8467/391bd49409c94aa58640afe.png
经过很长一段时间,几乎100%的java进程加载,情况似乎并不好,只是添加一些工件......没有反映真正的“Maven Central”数据......
第二个问题,“Expire Cache”,“ReIndex”,“Incremental ReIndex”有什么区别?
即使我可以“搜索”spring-core.3.0.2.RELEASE,我的m2eclipse仍然无法找到它: alt text http://img217.imageshack.us/img217/9360/18c15abab4f343b0848a819.png
我还可以在“索引”中看到spring-core-3.0.2.RELEASE,(但在“存储”中不可用): alt text http://img268.imageshack.us/img268/7041/maven2.gif
但为什么m2eclipse无法利用呢?似乎m2eclipse只能在存储中安装工件,如果这是nexus的工作方式,我如何“强制”下载spring-core-3.0.2.RELEASE到nexus的存储?
如何解决这些奇怪的不兼容问题? 非常感谢!
- 更新 -
似乎m2eclipse和maven-3.0-beta1存在问题。
在我改回maven 2.2.1后,现在一切正常。
抱歉。
答案 0 :(得分:2)
Nexus仅缓存客户端请求的工件。因此,您需要设置项目poms以请求正确的版本。
答案 1 :(得分:1)
Nexus只代理构建请求的内容,这就是为什么它没有每个仓库的本地存储中的完整副本。相信我,你不会想要那样的。您通常只需要一个非常小的子集,例如100gb Central repo。
您可以在此处阅读有关各种过期/重新索引等操作的详细信息:Nexus Scheduled Tasks