Nexus仓库属性和分类

962 阅读2分钟

Nexus作为一款Maven仓库管理器,仓库(Repository)自然是Nexus最核心的概念。Nexus中提供了许多仓库概念,如代理仓库、宿主仓库以及仓库组等。Nexus为每一种仓库都提供了丰富的配置参数,方便我们根据自身需要进行定制。

Nexus仓库属性

点击左边导航栏中的Repositories,可以看到Nexus自带的几个内置仓库,如下图所示。

\

在仓库列表中,每个仓库都具有一系列属性:

Type:仓库的类型,Nexus中有4中仓库类型:group(仓库组)、hosted(宿主仓库)、proxy(代理仓库)以及virtual(虚拟仓库)。

Format:仓库的格式。

Policy:仓库的策略,表示该仓库是发布(Release)版本仓库还是快照(Snapshot)版本仓库。

RepositoryStatus:仓库的状态。

RepositoryPath:仓库的路径。

由图1可知,Nexus2.x默认创建了6个仓库,我们称它们为Nexus内置仓库。

MavenCentral:该仓库用来代理Maven中央仓库,其策略为Release,只会下载和缓存中央仓库中的发布版本的构件。

Releases:策略为Release的宿主仓库,用来部署公司或组织内部的发布版本构件。

Snapshots:策略为Snapshot的宿主仓库,用来部署公司或组织内部的快照版本构件。

3rdparty:策略为Release的宿主仓库,用来部署第三方发布版本构件,这些构件一般无法从任何远程仓库中获得。

PublicRepositories:该仓库组将上述所有存储策略为Release的仓库聚合并通过统一的地址提供服务。

Nexus仓库分类

Nexus仓库按照类型(Type)区分,主要分为以下3个类型:

代理仓库(proxy):用来代理远程公共仓库,如Maven中央仓库、JBoss远程仓库。

宿主仓库(hosted):又称Nexus本地仓库,该仓库通常用来部署本地项目所产生的构件。

仓库组(group):用来聚合代理仓库和宿主仓库,为这些仓库提供统一的服务地址,以便Maven可以更加方便地获得这些仓库中的构件。

为了更加直观的理解仓库组、代理仓库和宿主仓库的概念,我们通过下图展示它们的用途和区别。

\

由上图可知:

Maven可以直接从宿主仓库中下载构件。

Maven也可以从代理仓库中下载构件,代理仓库会从远程仓库下载并缓存构件。

Maven还可以从仓库组中下载构件,仓库组会从其包含的宿主仓库和代理仓库中获取构件。