今天给同事们部署新架构的工程,新工程是使用Maven做项目构建依赖工具,必然要使用到maven私服Nexus,发生了一件很奇怪的事情,有的同事很快就将工程依赖整理完成,有的同事停滞在下载依赖过程。最后发现是因为Nexus私服的中央仓库中没有项目需要的构建。有的同事是直接拷贝的我本地的maven仓库所以能顺利完成依赖整理。解决这个问题花了不少时间和精力,关键问题是使用IDEA的Maven自动导入,导入失败后没有日志提示,无法确定问题原因,所以以后遇到问题首先应该做的还是查找日志,而不是盲目猜测。
下面把解决问题的过程记录一下:
起初以为是IDEA或者Maven的工具问题,重启过IDEA和电脑,删除了本地Maven仓库都无用,后来觉得是Nexus的问题或者同事机器网络的问题毕竟有些同事是OK的啊,测试同事电脑和Nexus服务器传递数据速度很快,网络没有问题,一筹莫展之时,想起运行maven的package命令试试看,运行后提示失败,但是重要的是有失败原因,这个很关键啊,原来是Nexus仓库没有dubbo的2.8.4的依赖,这个依赖是由我手动install到本地仓库中的,知道原因了就好处理了,下面提交dubbo 2.8.4到Nexus私服,首先在dubbox的项目源码中修改pom.xml添加私服仓库的地址然后运行mvn deploy -DskipTests 等待完成。完成之后回到同事电脑mvn package -DskipTests 依然报错。查看日志依然提示查找不到依赖组件,明明deploy成功了,为什么还是提示不存在!?仔细查看日志原来maven使用的本地缓存的仓库信息去做检索,二话不说删了本地仓库从Nexus上重新下载。终于成功了。