我在 LAN 内部署了一个 sonatype nexus 服务器,将一些远程存储库映射到我的公共(public)存储库:
alt text http://img576.imageshack.us/img576/5517/7875d01884ad4234a5b02e2.png
第一个问题是,为什么这些存储库不与“真实”存储库同步? 例如,我将mavencentral(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
而且版本很旧...... ex : spring-core 只有 2.5.6.SEC01 ,但最新版本是 3.0.2.RELEASE 。 而我的maven客户端似乎只能找到旧的 Artifact ...... alt text http://img199.imageshack.us/img199/3872/maven.gif
“central”是一个代理目录,它应该与远程服务器相同。我尝试“过期缓存”,“重新索引”,“增量重新索引”整个“中央”: alt text http://img23.imageshack.us/img23/8467/391bd49409c94aa58640afe.png
经过很长时间几乎 100% java 进程负载后,情况似乎并没有好转,只是添加了一些 Artifact ...没有反射(reflect)真正的“Maven Central”数据...
第二个问题,“Expire Cache”、“ReIndex”、“Incremental ReIndex”有什么区别?
即使我可以“搜索” spring-core.3.0.2.RELEASE ,我的 m2eclipse 仍然找不到它: alt text http://img217.imageshack.us/img217/9360/18c15abab4f343b0848a819.png
我还可以在“index”中看到 spring-core-3.0.2.RELEASE (但在“storage”中不可用): alt text http://img268.imageshack.us/img268/7041/maven2.gif
但是为什么m2eclipse不能使用它呢?看来m2eclipse只能在存储中安装 Artifact ,如果这就是nexus的工作原理,我如何“强制”下载spring-core-3.0.2.RELEASE到nexus的存储?
如何解决这些奇怪的不兼容问题? 非常感谢!
--更新--
看来是m2eclipse和maven-3.0-beta1的问题。
在我改回 maven 2.2.1 后,现在一切正常。
抱歉打扰。
最佳答案
Nexus 仅缓存客户端请求的 Artifact 。因此,您需要设置项目 pom 来请求正确的版本。
关于maven-2 - 一些 sonatype 关系问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2979204/