1 Nexus
1.1 Nexus是什么
Nexus是aritifact仓库管理器,通过https/http等协议对外提供组件下载、上传等服务。如果是maven的本地仓库(默认位置~/.m2/repository)是让jar对你个人所有本地项目都可共享的化,那么,nexus让仓库具有整个团队乃至整个互联网访问的能力。
1.2 Nexus给我们带来了什么
1) delegate互联网上的maven仓库,提供索引检索服务;
2) 通过nexus下载的组件,会保存到nexus本地的maven仓库中,对整个团队来说,一份jar包只需要下载一次,节省带宽;
3) 解决了“始终保证软件jar包的开发者和使用者都在一个版本的上协作开发”,避免了长期使用旧的版本的jar包开发,在该jar包被开发者修改之后,接口不一致造成的工问题,开发人员可“提交后不管”;
4) 将开发人员从export、copy&paste这样机械性重复性工作中解放出来,专注于业务和算法。
1.3 FAQ
1) 如何上传第三方jar包到nexus上面,登录之后到相应的repository下面操作,一般是3rd lib或者是release库。
2) xxx:jar:1.0 is missing
a) 首先检查local repository里面存在不存在该jar包;
b) 在检查nexus上面有没有该jar包,检查里面有没有能正常打开的jar文件
c) 使用mvn -U
d) 检查使用是哪个地址的nexus服务器,京津各一个
3) 错误: Failure to find xxx:jar:1.0 in http://192.168.1.231:8080/nexus/content/groups/public/was cached in the local repository, resolution will not be reattempted untilthe update interval of nexus has elapsed or updates are forced
a) 检查local repository里面存在不存在该jar包,或者又没有_lastUpdate文件,如果有,删除整个组件的指定版本的目录;重新执行mvn -U