【转载】Java Component Repository Management with Nexus Repository Manager Server

Java Component Repository Management with Nexus Repository Manager Server

来自koorka知识分享

原文地址:https://www.koorka.com/wiki/Java_Component_Repository_Management_with_Nexus_Repository_Manager_Server

仓库(Repository)是提供给用户的组件的容器。创建和管理存储库是Nexus Repository Manager配置的重要组成部分,因为它使您可以向用户公开更多组件。 它使用多种不同的存储库格式支持代理存储库( proxy repositories),托管存储库(hosted repositories)和存储库组( repository groups )。

存储库的二进制部分存储在Blob存储(Blob Stores)中,可以通过从“管理”菜单的“Repository”子菜单中选择“ Blob Stores”来进行配置。

要管理存储库,请在“管理”菜单的“Repository”子菜单中选择“Repositories”项。

目录

代理存储库(Proxy Repository)

具有代理类型的存储库,也称为代理存储库,是链接到远程存储库的存储库。 对组件的任何请求都将根据代理存储库的本地内容进行验证。 如果未找到本地组件,则将请求转发到远程存储库。 然后检索组件并将其本地存储在存储库管理器中,该存储库管理器充当缓存。 然后,从本地存储满足对相同组件的后续请求,因此消除了再次从远程存储库中检索组件的网络带宽和时间开销。

默认情况下,存储库管理器附带以下已配置的代理存储库:

maven-central

该代理存储库访问中央存储库(Central Repository)(以前称为Maven Central)。 它是Apache Maven内置的默认组件存储库,并由Gradle,SBT或Ant / Ivy等其他构建工具很好地支持。

nuget.org-proxy

该代理存储库访问NuGet Gallery。 它是用于.Net开发的nuget软件包管理工具使用的默认组件存储库。

托管存储库(Hosted Repository)

具有托管类型的存储库,也称为托管存储库,是一种将组件存储在存储库管理器中作为这些组件的权威位置的存储库。

默认情况下,存储库管理器随附以下已配置的托管存储库:

maven-releases

该托管存储库使用带有发布版本策略的maven2存储库格式。 它旨在成为您的组织发布内部版本的存储库。 您也可以将此存储库用于外部存储库中不可用的第三方组件,因此无法通过已配置的代理存储库进行检索。 这些组件的示例可以是商业专有库,例如您的组织可能引用的Oracle JDBC驱动程序。

maven-snapshots

该托管存储库使用带有快照版本策略的maven2存储库格式。 它旨在成为您的组织发布内部开发版本(也称为快照)的存储库。

nuget-hosted

在此托管存储库中,您的组织可以使用NuGet存储库格式在存储库中发布内部发行版。 您还可以将此存储库用于外部存储库中不可用的第三方组件,这些第三方组件可能被代理以获取对组件的访问权。

储存库组(Repository Group)

具有类型组的存储库(也称为存储库组)代表Nexus Repository Manager的强大功能。 它们使您可以在单个存储库中组合多个存储库和其他存储库组。 反过来,这意味着您的用户可以依靠单个URL来满足他们的配置需求,而管理员可以向存储库组添加更多存储库,从而添加组件。

存储库管理器附带以下组:

maven-public

maven-public组是maven2格式存储库的存储库组,它将中央存储库的重要外部代理存储库与托管存储库maven-releases和maven-snapshots组合在一起。 这使您可以将中央存储库的组件以及内部组件公开在一个简单易用的存储库中,从而可以显示URL。

nuget-group

该组将nuget格式的存储库nuget-hosted和nuget.org-proxy合并到一个存储库中,供您使用NuGet开发.Net。

管理存储库和存储库组(Managing Repositories and Repository Groups)

可以通过“管理”菜单的“Repository”子菜单中的“Repositories”项使用存储库和存储库组的管理用户界面。 它使您可以创建和配置存储库以及删除它们并执行各种维护操作。

仓库列表中各个字段的含义如下:

列名称含义
Name存储库或存储库组的唯一名称
Type具有代理值或托管于存储库或存储库组的组的存储库类型
Format具有值(例如maven2,nuget或其他)的存储库中用于存储的存储库格式
Status存储库的状态以及有关状态的更多信息。 运行中的存储库将显示状态为“联机”。 附加信息可以例如是关于SSL认证问题或当前禁用的代理存储库的远程存储库状态的信息
URL复制按钮将提示一个对话框,其中包含直接URL路径,从而暴露存储库
Health Check显示先前运行的“存储库运行状况检查”中的存储库运行状况统计信息,或通过按钮启动分析

创建仓库(Create Repository)

当点击“Create Repository”按钮后将触发一个对话框,以选择新存储库的类型/配方(Recipe)。 Recipe将存储库的格式和类型组合为一个选择。 根据您的存储库管理器版本和已安装的插件,可用选项的列表会有所不同。

例如,要创建另一个maven2格式的发布存储库,您可以在对话框中单击包含maven2(托管)配方的行。 如果要代理Maven2存储库,请选择Maven 2(代理)。 另一方面,如果要代理nuget存储库,请选择nuget(代理)。 使用maven2(组),可以为maven2存储库创建存储库组。

选择之后,将显示配置视图,可让您填写所需的参数和一些进一步的配置。 视图上的确切详细信息取决于所选的存储库提供者。

创建Maven2代理仓库

在创建时recipe选择“maven2(proxy)”,在配置视图中各项参数含义如下:

名称含义备注
Name该仓库的唯一标识符 
Online复选框,如果勾选,表示启用;如果不勾选,表示禁用,即不接收客户端请求。 
maven2Version Policy版本策略。共三个选项:release(发行版)、snapsoht(快照/开发版)、mixed(混合)对于代理库,建议使用Release。
Layout Policy验证所有路径都是Maven artifact 或 metadata  路径。两个选项:严格、宽松建议使用严格(Strict),如果有需要宽松处理的,建议单独建库。
ProxyRemote Storage远程仓库地址。

选择要代理的URL时,最好避免代理远程存储库组(避免使用group地址)。 代理存储库组在访问和检索远程存储库的内容方面阻止了某些性能优化。 如果您需要在远程存储库服务器上的不同托管存储库中找到该组中的组件,则最好创建多个代理存储库,这些代理存储库在您的存储库管理器中从远程服务器上代理不同的托管存储库,而不是简单地代理该组。

国内可以使用阿里服务器:https://maven.aliyun.com/repository/central

详情参看:https://maven.aliyun.com/mvn/view

Blocked阻止仓库上的出站连接。如果勾选该选项,该代理服务器仅在缓存中查找软件包,不连接到远程仓库。 
Auto blocking enabled如果检测到远程仓库不可达/无响应,则自动阻止存储库上的出站连接。默认开启。 
Maximum component age重新检查远程存储库之前要缓存工件多长时间(以分钟为单位)。发行版本仓库应使用-1。-1表示永久缓存。 
Maximum metadata age重新检查远程存储库之前需要多长时间(分钟)来缓存元数据。 
StorageBlob store本地数据(缓存的数据)的存储位置,即用于存储仓库内容的Blob存储 
 Strict Content Type Validation验证上载到此存储库的所有内容是否具有适合该存储库格式的MIME类型。默认勾选。 
Routing Rule选择规则以限制某些请求由该存储库处理参看路由规则管理
Negative CacheNot found cache enabled缓存代理存储库中不存在的内容的响应。默认开启。 
Not found cache TTL在存储库中未找到文件的事实的缓存时间(以分钟为单位)。

如果存储库管理器无法找到组件,它将在给定的分钟数内缓存此结果。

 
Cleanupcleanup policies与任何已应用策略匹配的组件将被删除。参看清除策略管理
HTTPAuthentication认证信息。如果远程服务器需要用户认证,在这里填入用户认证信息。 
HTTP request settings向远程仓库发送HTTP请求的设置。如果不设置,则使用默认值。 

创建maven托管仓库(hosted repository)

Deployment policy:控制是否允许对组件进行重新部署和更新。开发版本仓库选择允许重新部署(Allow redeploy),发行版本仓库选择(Disable redeploy)。

其它选项参考创建代理仓库。

创建maven仓库组(repository group)

Member repositories : 将需要加入该组的其它仓库添加到members列表即可。

其它选项参考创建代理仓库。

修改/维护仓库

需要修改或维护仓库,在点击仓库列表仓库的名称即可进行修改/维护界面。主要功能:

名称功能适用仓库备注
Delete repository使用删除存储库按钮可以删除存储库以及所有相关的配置和组件。所有 
Invalidate cache使代理存储库上的高速缓存无效将清除代理高速缓存,以便在下次请求它们时,将再次检查高速缓存的所有可用项是否有任何更改。 这还将清除代理存储库的负缓存,以便在下次请求它们时将再次检查在定义的缓存期内未找到的任何项目。代理仓库和仓库组 
Rebuild Index使用“重建索引”按钮,可以删除并重新创建代理存储库的搜索索引,从而将内容与搜索索引同步。代理仓库和托管仓库 
Disable/enable HealthCheck启用或禁用健康检查。参考: https://blog.sonatype.com/how-to-use-the-new-repository-health-check-2.0代理仓库 

管理仓库的存储(Blob Stores)

Blob存储是组件及其资产的二进制部分的内部存储机制。 每个Blob存储可以被一个或多个仓库库和仓库组使用。 在安装期间,系统自动创建了一个基于文件系统的默认(default)Blob存储。

NXRM(NeXus Repository Manager)支持两种类型的Blob存储:

  • File : 将内容存储在本地文件系统上
  • S3: 将文件内容存在到 AWS S3 bucket。

本文只介绍File类型的Blob存储。S3有由于涉及到AWS的使用,请查看相关文档进行配置。或参考:

https://help.sonatype.com/repomanager3/high-availability/configuring-blob-stores#ConfiguringBlobStores-AWSSimpleStorageService(S3)

创建File类型的Blob存储

在管理菜单中点击“Create blob store”后会弹出相应对话框,各项含义如下:

名称功能备注
Type存储的类型:File 
Name存储名称。在系统内唯一 
path文件路径:在服务上的相对路径,如default的路径是 default,在服务器上的位置是: $workdir/blobs/default 
Enable Soft QuotaType of Quota容量限制类型 
Quota limit in MB容量限制大小,单位为MB 

管理内容选择器(Content Selectors)

内容选择器为您提供了一种从所有内容中选择特定内容的方法。 根据CSEL(Content Selector Expression Language)编写的表达式对您选择的内容进行评估。 CSEL是JEXL(Java Expression Language)的简化版本,用于沿特定路径和存储库管理器格式可用的坐标编写查询脚本。

内容选择器允许您定义允许用户访问的内容。 在一个简化的示例中,您可以定义一个名为“ Apache Maven”的选择器,其选择表达式为path =〜“ ^ / org / apache / maven /”。 这将匹配以指定组件路径开头的所有组件。

如何创建和管理内容选择器,请参考: https://help.sonatype.com/repomanager3/configuration/repository-management#RepositoryManagement-ContentSelectors

管理清理策略(Cleanup Policies)

为节省磁盘空间和提高服务器的检索性能,NXRM提供了清理策略。对于代理库和发行版本库,一般只有老旧版本需要清理。对于快照库,可能就需要经常清理。

关于如何创建清理策略,请参阅:https://help.sonatype.com/repomanager3/cleanup-policies

在创建好清理策略后,系统会通过自带的任务执行器cleanup service定期执行清理工作。默认的清理策略为空,即不执行清理工作。

管理路由规则(Routing Rules)

路由规则有两种模式:“阻止”和“允许”。 如果匹配器之一与请求路径匹配,则选择BLOCK时,将阻止该请求,否则将允许该请求。 如果规则使用ALLOW模式,则请求路径必须至少由一个匹配器匹配,否则它将被阻止。

在需要对库内的某些资源进行访问限制时,可以添加路由规则来增强安全性。参考文档:https://help.sonatype.com/repomanager3/configuration/routing-rules

取自“https://www.koorka.com/index.php?title=Java_Component_Repository_Management_with_Nexus_Repository_Manager_Server&oldid=396

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值