Nexus == 折腾

Maven 用了三个月,最近开始尝试用 Nexus,目标很简单,就是搭个私服,用来做部门的公用仓库,有需要时上传一些第三方构件。说起来简单,但过程就俩字:折腾~

 

花了三个周末,直到今天,才总算搭好了环境。有些概念还没弄清,但基本使用是没问题的。期间分别尝试了三台电脑,三个操作系统(Win7,Ubuntu,Debian),三种网络(广东电信,广东联通,北京联通),两种部署方式(Jetty,Tomcat),一次又一次的 Google,无数次的尝试。。。

 

刚开始了解 Nexus 时,觉得它很方便,甚至自带了 Jetty,下载后直接跑就行了嘛,但真正用起来,就像一场恶梦。。。当然,对于 Maven 跟 M2Eclipse 不够熟悉也是导致出现问题的原因之一。本文不是 Nexus 的安装配置心得(可能迟些会写),只是一些问题记录。

 

  • 问题一:在 Debian 上使用 Nexus 1.9.0.2 自带的 Jetty 运行,报错。

我忘了把异常记下来。该问题至今仍未解决,可能跟我的 Debian 有关系。目前我通过 Tomcat 部署 Nexus webapp 暂时解决了问题。

 

  • 问题二:下载 Maven Central 和 Java.net - Maven 2 仓库索引时,出现异常 "java.net.SocketTimeoutException: Read timed out"。就只有这两个仓库有问题,其它都正常。

上个周末和上上个周末,我一直遇到这个问题,导致 Nexus 根本用不了。Google 没找到答案,在 Sonatype 官网上有一个 Issue (https://issues.sonatype.org/browse/NEXUS-1908 ) 说的就是这个问题,但这个两年前提出来的 Issue 至今状态仍是 Unresolved 。。。

 

而更神奇的是,就在今天,在我对这个问题已经绝望的时候,却发现,问题自动消失了,能正常下载索引了!我是又高兴又想骂娘啊。。。

 

猜测,很可能是网络问题。但到底是国内网络的问题呢,还是那两个仓库的网络问题,就不得而知了。

 

  • 问题三:使用 M2Eclipse 一次性更新大量 Maven 依赖时,Nexus 后台会报错
org.restlet.Component.Server - Error while handling an HTTP server call: null
org.restlet.Component.Server - An exception occured writing the response entity: null

然后 Eclipse 中有些依赖怎么都下载不到,一直提示 "Missing artifact"。

 

这个问题涉及到 Nexus + Maven + M2Eclipse,目前我还不大明白其根本原因。大概的原因是,更新依赖时出错,然后本地仓库出现了一些 .lastUpdated 文件,这些文件会阻止 M2Eclipse 从远程仓库下载依赖。所以解决方法就是,把本地仓库中这些 .lastUpdated 文件删除,重新更新依赖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值