Nexus介绍
Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节 省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的 REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。
Maven 仓库的两个概念:本地仓库和远程仓库
本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本 地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包版本在本地仓库没有,而且也不存在于远程仓库,Maven在构建的时候会报 错,这种情况可能发生在有些jar包的新版本没有在Maven仓库中及时更新。
Maven缺省的本地仓库地址为${user.home}/.m2/repository 。也就是说,一个用户会对应的拥有一个本地仓库。当然你可以通过修改${user.home}/.m2/settings.xml
Nexus包含了各种类型的仓库概念,包括代理仓库、宿主仓库和仓库组等。我理解这些仓库对于Maven来说都是远程仓库。
Nexus内置的仓库列表
Maven Central:该仓库代理Maven中央仓库,其策略为Release,因此只会下载和缓存中央仓库中的发布版本构件。
Releases:这是一个策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件。
Snapshots:这是一个策略为Snapshot的宿主类型仓库,用来部署组织内部的快照版本构件。
3rd party: 这是一个策略为Release的宿主类型仓库,用来部署无法从公共仓库中获得的第三方发布版本构件。
Apache Snapshots:这是一个策略为Snapshot的代理仓库,用来代理Apache Maven仓库的快照版本构件。
Codehaus snapshots:这是一个策略为Snapshot的代理仓库,用来代理Codehaus Maven仓库的发布版本构件。
。。。
Public Repositories:该仓库组将上述所有策略为Release的仓库聚合并通过一致的地址提供服务。
Public Snapshot Repositories: 该仓库组将上述所有策略为Snapshot的仓库聚合并通过一致的地址提供服务。
理解镜像:
如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构建,都能够从它的镜像中获取。
maven作为一个强大的项目管理软件,相信已经得到了很多人的喜爱,至少我公司现在正在使用。所谓“工欲善其事必先利其器”,作为一个集jar依赖、 项目管理于一体的maven,其jar依赖包的管理是首当其冲的。每个公司或组织在使用maven时定然要在自己的局域网内搭建一个镜像服务器,用来对内 提供项目依赖管理,好处当然就是不用依赖maven的中央仓库或是其他开放组织的仓库,即使断网了,公司或组织内部照样可以进行build和项目打包编 译。这个就需要用到maven的镜像服务器软件了nexus!
nexus是一款基于java平台的maven镜像服务器软件,可以用来提供依赖包的发布、维护和管理,作为公司或组织内部与公用maven仓库之间的 缓冲镜像,可以显著的提高我们的工作效率。
一下几篇文章写的很好:
http://www.blogjava.net/baoyaer/articles/355040.html
http://aijezdm915.iteye.com/blog/1335025
http://www.oschina.net/question/12_7986