16.5.2. 管理仓库

要管理Nexus提供的仓库,以管理员用户登陆然后点击左边导航菜单Administration下面的Repositories。Nexus提供了三种不同的仓库。

代理仓库

一个代理仓库是对远程仓库的一个代理。默认情况下,Nexus自带了如下配置的代理仓库:

Apache Snapshots

这个仓库包含了来自于Apache软件基金会的快照版本。http://people.apache.org/repo/m2-snapshot-repository

Codehaus Snapshots

这个仓库包含了来自于Codehaus的快照版本。 http://snapshots.repository.codehaus.org/

Central Maven Repository

这是中央Maven仓库(发布版本)。 http://repo1.maven.org/maven2/

宿主仓库

一个宿主仓库是由Nexus托管的仓库。Maven自带了如下配置的宿主仓库。

3rd Party

这个宿主仓库应该用来存储在公共Maven仓库中找不到的第三方依赖。这种依赖的样例有:你组织使用的,商业的,私有的类库如Oracle JDBC驱动。

Releases

这个宿主仓库是你组织公布内部发布版本的地方。

Snapshots

这个宿主仓库是你组织发布内部快照版本的地方。

虚拟仓库

一个虚拟仓库作为Maven 1的适配器存在。Nexus自带了一个central-m1虚拟仓库。

代理仓库的配置页面

Figure 16.12. 代理仓库的配置页面


Figure 16.12, “代理仓库的配置页面” 展示了Nexus中代理仓库的配置页面。在这个页面中,你可以管理一个外部仓库的设置。本页面中,你可以配置:

仓库ID

仓库ID是将会被用在Nexus URL中的标识符。例如,中央代理仓库有一个ID为"central",这就意味着Maven可以直接在http://localhost:8081/nexus/content/repositories/central访问这个仓库。在一个给定的Nexus安装中,仓库ID必须是唯一的。ID是必需的。

仓库名称

仓库的显示名称。名称是必需的。

仓库类型

仓库类型(代理,宿主,或者虚拟)。你不能改变仓库的类型,在你创建一个仓库的时候它就被指定了。

仓库策略

如果一个代理仓库的策略是release,那么它只会访问远程仓库的发布版本构件。如果一个代理仓库的策略是snapshot,它只会下载远程仓库的快照版本构件。

默认存储位置

它不可编辑的,显示出来只是为了参考。这是仓库本地缓存内容的默认存储位置。

覆写存储位置

你可以选择为某个特定的仓库覆写存储位置。如果你关心存储空间,或者想要将某个特定仓库(如中央仓库)的内容放到一个不同的位置,你就可以覆写存储位置。

远程仓库访问

这一部分告诉Nexus去哪里寻找远程仓库,以及如何与这个被代理的仓库交互。

远程存储位置

这是远程Maven仓库的URL。

下载远程索引(本图未显示)

这个字段控制下载远程索引。目前只有中央仓库在http://repo1.maven.org/maven2/.index有一个索引。如果开启它,Nexus会下载这个索引,并使用它用来搜索,以及为任何要求索引的客户(如m2eclipse)服务。新的代理仓库的默认值是开启的,但是Nexus自带的所有仓库的这个默认值是关闭的。要改变Nexus自带的代理仓库设置,更改此选项,保存至仓库,然后给仓库重新编制索引。在这之后,构件搜索会返回中央Maven仓库中可用的每一个构件。Section 16.6, “维护仓库”详细描述了为仓库重新编制索引的过程。

校验和策略

为一个远程仓库设置校验和策略。这个选项默认设置成Warn。该设置可能的值包括:

  • Ignore - 完全忽略校验和

  • Warn - 如果校验和不正确,在日志中打印一个警告

  • StrictIfExists - 如果计算出来的校验和与仓库中的校验和不一致,那就拒绝缓存这个构件。只有校验和文件存在的时候才进行检查。

  • Strict - 如果计算出来的校验和与仓库中的校验和不一致,或者如果构件没有校验和文件,就拒绝缓存这个构件。

认证

这一部分允许你为一个远程仓库设置用户名,密码,私钥,密钥口令,NT LAN HOST,以及NT LAN Manager Domain。

访问设置

这一部分为一个仓库配置访问设置。

允许部署

如果允许部署设置成true,Nexus会允许Maven部署构件至这个仓库。允许部署只有对于宿主仓库有意义。

允许文件浏览

如果设置成true,用户可以通过web浏览器来浏览这个仓库的内容。

包含在搜索范围中

如果设置成true,当你在Nexus中执行构件搜索的时候,该仓库会被搜索。 如果设置成false,在搜索时该仓库的内容会被排除。

过期失效设置

Nexus为构件和元数据维护一份本地的缓存,你可以为代理仓库配置过期失效参数。过期失效设置有:

未找到缓存TTL

如果Nexus找不到一个构件,它会在一个给定的时间内缓存这个结果。换句话说,如果Nexus不能在远程仓库中找到一个构件,它不会重复的尝试去解析这个构件,除非超过了这个未找到缓存TTL时间。默认值是1140分钟(或者24小时)。

构件最大年龄

在Nexus从远程仓库获取一个新版本的构件前,告诉它构件的最大年龄是多少。带有release策略的仓库的默认设置是-1,带有snapshot策略的仓库的默认值是1140。

元数据最大年龄

Nexus从远程仓库获取元数据。只有在超过了元数据最大年龄之后,它才会去获取元数据的更新。该设置的默认值是1140分钟(或者24小时)。

HTTP请求设置

这一部分能让你更改对于远程仓库的HTTP请求的属性。该部分中你可以配置请求的User Agent,为请求添加参数,设置超时和重试行为。这一部分涉及的是由Nexus对远程被代理Maven仓库的HTTP请求。

HTTP代理设置

该部分能让你为从Nexus到远程仓库的请求配置HTTP代理。你可以配置一个代理主机,端口和认证设置,以告诉Nexus为所有对远程仓库的请求使用HTTP代理。