您的位置:首页 > 其它

【maven实战】30-Nexus仓库分类概念

2018-02-05 23:30 309 查看


Maven可以直接从宿主仓库下载构件;Maven也可以从代理仓库下载构件,而代理仓库会间接地从远程仓库下载并缓存构件;最后为了方便,Maven可以从仓库组下载构件,而仓库组没有实际内容,他会转向其他包含的宿主仓库或者代理仓库获得实际构件的内容。

创建Nexus宿主仓库:单击界面左边导航栏中的Repositories链接,在右边的面板中选择Add接着在下拉菜单中选择Hosted Repository如下:






根据自己的需要填入仓库的ID 和名称,下一字段Repository Type表示该仓库的类型。Provider用来确定该仓库的格式。一般来说选择默认的Maven2 Repository。然后是Repository Policy用来配置该仓库是发布版构件仓库还是快照版构件仓库。Default Local Storage Location表示该仓库的默认存储目录,图中该字段的值为空,待仓库创建好之后该值就会成为基于sonatype-work的一个文件路径,如sonatype-work/nexus/storage/repository-id/,Override
Local Storage Location可以用来配置自定义的仓库目录位置。

在Access Settings小组中,Deployment Policy用来配置该仓库的部署策略,选项有只读(禁止部署),关闭重新部署(同一构件只能部署一次)以及允许重新部署。Allow File Browsing表示是否允许浏览仓库内容,一般选True。每个仓库(包括代理仓库和仓库组)都有一个Browse Storage选项卡,用户以树形结构浏览仓库存储文件的内容,如下:






Include in Search表示是否对该仓库进行索引并提供搜索,下节讨论。

Publish URL用来控制是否通过URl提供服务,如果选False,当访问该仓库的地址时,会得到HTTP 404 Not Found错误。配置中最后的Not Found Cache TTL表示当一个文件没有找到后,缓存这一不存在信息的时间。以默认1440分钟为例,如果某文件不存在,那么在之后的1440分钟内,如果Nuext再次得到该文件的请求,他将直接返回不存在信息,而不会查找文件系统。这么做是为了避免重复的文件查找操作以提升性能。

创建Nexus代理仓库:单击界面左边导航栏中的Repositories链接,在右边的面板中,选择Add接着在下拉列表中选择Proxy Repository,就会看到如下图:






仓库的ID,名称,Provider,Policy,默认本地存储位置和覆盖本地存储位置等配置前面都已提过,需要注意的是Repository Type的值为proxy。

对于代理仓库来说,最重要的是远程仓库的地址,即Remote Storage Location,用户必须在这里输入有效的值。Download Remote Indexes表示是否下载远程仓库的索引,有些远程仓库拥有索引,下载其索引后,即使没有缓存远程仓库的构件,用户还是能够在本地搜索和浏览那些构件的基本信息。Checksum Policy配置检验和出错时的策略,用户可以选择忽略,记录警告信息或者拒绝下载。当远程仓库需要认证的时候,这里的Authentication配置就能派上用处。

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

配置中最后两项为HTTP Request Settings和Override HTTP Proxy Settings,其中前者用来配置Nexus访问远程仓库时HTTP请求的参数,后者用来配置HTTP代理。

创建Nexus仓库组:单击界面左边导航栏中的Repositories链接,在右边的面板中,选择Add接着在下拉列表中选择Repository Group,看到如下配置:



需要注意的是仓库组没有Release和Snapshot的区别。在配置界面中,用户可以非常直观地选择Nexus中的仓库,将其聚合成一个虚拟的仓库组。注意仓库组所包含的仓库的顺序决定了仓库组遍历其所包含的次序,因此最好将常用的仓库放在前面,当用户从仓库组下载构件的时候,就能够尽快地访问到包含构件的仓库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: