代理存储库 VS 托管存储库

2022-09-04 21:38:37

根据Nexus的书,托管存储库是“由Nexus托管的存储库”,第三方存储库(托管存储库)应该用于公共Maven存储库中不可用的第三方依赖项。

托管存储库和代理存储库之间有什么区别?例如,JBoss 版本被引用为代理存储库。为什么 JBoss 不发布第三方存储库?将其定义为托管存储库或代理存储库真的重要吗?


答案 1

我不确定你在Nexus书中没有找到什么。简短的版本是,代理存储库是您要镜像的存储库,而托管存储库是您通过Nexus软件托管在服务器上的存储库。托管包括由于某种原因不公开的第三方库,请参阅下文。

6.2.1. 代理仓库

代理存储库是远程存储库的代理。默认情况下,Nexus 附带以下已配置的代理存储库:

Apache Snapshots

此存储库包含 Apache 软件基金会的快照版本。

Codehaus Snapshots

此存储库包含来自 Codehaus 的快照版本。

中央

这是包含发布组件的中央存储库。它以前称为Maven Central,是Apache Maven的默认内置存储库,并直接支持其他构建工具,如Gradle,SBT或Ant / Ivy。Nexus使用URL https://repo1.maven.org/maven2/ 通过HTTPS连接到中央存储库。

6.2.2. 托管仓库

托管存储库是由 Nexus 托管的存储库。Nexus 附带以下已配置的托管存储库:

第三方

此托管存储库应用于公共 Maven 存储库中不可用的第三方依赖项。这些依赖项的示例可以是商业的专有库,例如您的组织可能引用的 Oracle JDBC 驱动程序。

释放

此托管存储库是您的组织发布内部版本的位置。

快照

此托管存储库是您的组织将发布内部快照的位置。


答案 2

引用Nexus书

1. 代理存储库

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

  • 缺省情况下,存储库管理器附带以下已配置的代理存储库:

    maven-central - 代理存储库访问中央存储库,以前称为 Maven Central。

    b). nuget.org 代理 - 此代理存储库访问 NuGet 库。它是用于 .Net 开发的 nuget 包管理工具使用的默认组件存储库。


2. 托管存储库

  • A 也称为托管存储库,是将组件存储在存储库管理器中作为这些组件的权威位置的存储库。repository with the type hosted

  • 缺省情况下,存储库管理器附带以下已配置的托管存储库:

    a). maven-releases - 此托管存储库使用 具有发行版策略。它旨在成为您的组织发布内部版本的存储库。您还可以将此存储库用于外部存储库中不可用的第三方组件,因此无法通过配置的代理存储库进行检索。maven2 repository format

    b). maven-snapshots - 使用 with snapshot version 策略。它旨在成为您的组织发布内部开发版本(也称为快照)的存储库。maven2 repository format

    c). nuget-hosted - 它旨在成为您的组织可以使用 .NuGet repository format


推荐