Nexus的仓库与仓库组

Nexus包含了各种类型的仓库概念,包括代理仓库、宿主仓库和仓库组等

Nexus内置的仓库

登陆用户,单击Nexus界面左边导航栏中的Repositories链接,就可以看到内置的仓库

nexus仓库 nexus仓库组_缓存


从中可以看到仓库有四种类型:

- group(仓库组)

- hosted(宿主)

- proxy(代理)

- virtual(虚拟)

每个仓库的格式为maven2或者maven1。此外,仓库还有一个属性为Policy(策略),表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库。最后两列的值为仓库的状态和路径。

  • Maven Central:该仓库代理Maven中央仓库,其策略为Release,因此只会下载和缓存中央仓库中的发布版本构件。
  • Releases:这是一个策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件。
  • Snapshots:这是一个策略为Snapshot的宿主类型仓库,用来部署组织内部的快照版本构件。
  • 3rd party:这是一个策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构件。
  • Apache Snapshots:这是一个策略为Snapshot的代理仓库,用来代理Apache Maven仓库的快照版本构件。
  • Codehaus Snapshots:这是一个策略为Snapshot的代理仓库,用来代理Codehaus Maven仓库的快照版本构件。
  • Google Code:这是一个策略为Release的代理仓库,用来代理Google Code Maven仓库的发布版本构件。
  • java.net-Maven 2:这是一个策略为Release的代理仓库,用来代理java.net Maven仓库的发布版本构件。
  • Public Repositories:该仓库组将上述所有策略为Release的仓库聚合并通过一致的地址提供服务。
  • Public Snapshot Repositories:该仓库组将上述所有策略为Snapshot的仓库聚合并通过一致的地址提供服务。

Nexus仓库分类的概念

nexus仓库 nexus仓库组_nexus仓库_02


Maven可以直接从宿主仓库下载构件;Maven也可以从代理仓库下载构件,而代理仓库会间接地从远程仓库下载并缓存构件;

创建Nexus宿主仓库

要创建一个宿主仓库,首先单击界面左边导航栏中的Repositories链接,

nexus仓库 nexus仓库组_nexus_03


接着在下拉菜单中选择Hosted Repository

nexus仓库 nexus仓库组_nexus_04


- Repository Policy,读者可以根据自己的需要来配置该仓库是发布版构件仓库还是快照版构件仓库。

- Default Local Storage Location表示该仓库的默认存储目录。

- Access Settings小组中,Deployment Policy用来配置该仓库的部署策略,选项有只读(禁止部署)、关闭重新部署(同一构件只能部署一次)以及允许重新部署。

创建Nexus代理仓库

仓库的ID、名称、Provider、Format、Policy、默认本地存储位置和覆盖本地存储位置等配置前面都已提过

Expiration Settings较宿主仓库多了Artifact Max Age和Metadata Max Age。其中,前者表示构件缓存的最长时间,后者表示仓库元数据文件缓存的最长时间。对于发布版仓库来说,Artifact Max Age默认值为-1,表示构件缓存后就一直保存着,不再重新下载。对于快照版仓库来说,Artifact Max Age默认值为1440分钟,表示每隔一天重新缓存代理的构件。

创建Nexus仓库组

仓库组没有Release和Snapshot的区别,这不同于宿主仓库和代理仓库
在配置界面中,用户可以非常直观地选择Nexus中的仓库,将其聚合成一个虚拟的仓库组。注意,仓库组所包含的仓库的顺序决定了仓库组遍历其所含仓库的次序,因此最好将常用的仓库放在前面,当用户从仓库组下载构件的时候,就能够尽快地访问到包含构件的仓库。