代理存储库 VS 托管存储库
Proxy repository VS hosted repository
根据 Nexus book,托管存储库是 "a repository that is hosted by Nexus.",第 3 方存储库(托管存储库)应该用于 public Maven 存储库中不可用的第三方依赖项。
托管存储库和代理存储库有什么区别?例如,JBoss 版本被引用为代理存储库。为什么 JBoss 不发布第 3 方存储库?将其定义为托管存储库或代理存储库真的很重要吗?
我不确定您在 Nexus Book 中没有发现什么。简而言之,代理存储库是您镜像的存储库,托管存储库是您通过 Nexus 软件在您的服务器上托管的存储库. Hosted 包括由于某种原因不属于 public 的第三方库,请参见下文。
6.2.1. Proxy Repository
A Proxy Repository is a proxy of a remote repository. By default, Nexus ships with the following configured proxy repositories:
Apache Snapshots
This repository contains snapshot releases from the Apache Software Foundation.
Codehaus Snapshots
This repository contains snapshot releases from Codehaus.
Central
This is the Central Repository containing release components. Formerly known as Maven Central, it is the default built-in repository for Apache Maven and directly supported in other build tools like Gradle, SBT or Ant/Ivy. Nexus connects to the Central Repository via HTTPS using the URL https://repo1.maven.org/maven2/.
6.2.2. Hosted Repository
A Hosted Repository is a repository that is hosted by Nexus. Nexus ships with the following configured hosted repositories:
3rd Party
This hosted repository should be used for third-party dependencies not available in the public Maven repositories. Examples of these dependencies could be commercial, proprietary libraries such as an Oracle JDBC driver that may be referenced by your organization.
Releases
This hosted repository is where your organization will publish internal releases.
Snapshots
This hosted repository is where your organization will publish internal snapshots.
引自Nexus Book:
1。代理存储库
- 是一个
repository with the type proxy
,也称为代理仓库,是链接到远程仓库的仓库。
- 对组件的任何请求都根据代理存储库的本地内容进行验证。 如果未找到本地组件,则将请求转发到远程存储库。然后检索组件并将其本地存储在充当缓存的存储库管理器中。
随后从本地存储中满足对同一组件的后续请求,因此消除了再次从远程存储库检索组件的网络带宽和时间开销。
默认情况下,存储库管理器附带以下配置的代理存储库:
a). maven-central - 代理存储库访问中央存储库,以前称为 Maven Central。
b). nuget.org-proxy - 此代理存储库访问 NuGet 图库。 .Net开发时使用的nuget包管理工具默认使用的组件库
2。托管存储库
repository with the type hosted
,也称为托管存储库,是一种存储库,将组件存储在存储库管理器中作为这些组件的权威位置。
默认情况下,存储库管理器附带以下配置的托管存储库:
a). maven-releases - 此托管存储库使用 maven2 repository format
和发布版本策略。它 旨在成为您的组织发布内部版本 的存储库。您还可以将此存储库用于第三方组件,这些组件在外部存储库中不可用,因此无法通过配置的代理存储库检索。
b). maven-snapshots - 将 maven2 repository format
与快照版本策略一起使用。它旨在成为您的组织发布内部开发版本(也称为快照)的存储库。
c). nuget-hosted - 它旨在成为您的组织可以使用 NuGet repository format
.
在存储库中发布内部版本的存储库
只看术语不太容易理解,以A公司为例,A公司有自己的神器companyA.jar,依赖mybatis.jar,构建companyA项目时,会下载mybatis.jar 来自代理仓库,如果没有,则nexus 将从public maven 仓库下载它并将其存储在代理仓库中,这样nexus 就不需要从public maven 仓库下载mybatis再次.
companyA项目,公司其他开发者也需要,所以其开发者需要将其部署到hosted repository,以便其他人可以使用。
根据 Nexus book,托管存储库是 "a repository that is hosted by Nexus.",第 3 方存储库(托管存储库)应该用于 public Maven 存储库中不可用的第三方依赖项。
托管存储库和代理存储库有什么区别?例如,JBoss 版本被引用为代理存储库。为什么 JBoss 不发布第 3 方存储库?将其定义为托管存储库或代理存储库真的很重要吗?
我不确定您在 Nexus Book 中没有发现什么。简而言之,代理存储库是您镜像的存储库,托管存储库是您通过 Nexus 软件在您的服务器上托管的存储库. Hosted 包括由于某种原因不属于 public 的第三方库,请参见下文。
6.2.1. Proxy Repository
A Proxy Repository is a proxy of a remote repository. By default, Nexus ships with the following configured proxy repositories:
Apache Snapshots
This repository contains snapshot releases from the Apache Software Foundation.
Codehaus Snapshots
This repository contains snapshot releases from Codehaus.
Central
This is the Central Repository containing release components. Formerly known as Maven Central, it is the default built-in repository for Apache Maven and directly supported in other build tools like Gradle, SBT or Ant/Ivy. Nexus connects to the Central Repository via HTTPS using the URL https://repo1.maven.org/maven2/.
6.2.2. Hosted Repository
A Hosted Repository is a repository that is hosted by Nexus. Nexus ships with the following configured hosted repositories:
3rd Party
This hosted repository should be used for third-party dependencies not available in the public Maven repositories. Examples of these dependencies could be commercial, proprietary libraries such as an Oracle JDBC driver that may be referenced by your organization.
Releases
This hosted repository is where your organization will publish internal releases.
Snapshots
This hosted repository is where your organization will publish internal snapshots.
引自Nexus Book:
1。代理存储库
- 是一个
repository with the type proxy
,也称为代理仓库,是链接到远程仓库的仓库。 - 对组件的任何请求都根据代理存储库的本地内容进行验证。 如果未找到本地组件,则将请求转发到远程存储库。然后检索组件并将其本地存储在充当缓存的存储库管理器中。
随后从本地存储中满足对同一组件的后续请求,因此消除了再次从远程存储库检索组件的网络带宽和时间开销。
默认情况下,存储库管理器附带以下配置的代理存储库:
a). maven-central - 代理存储库访问中央存储库,以前称为 Maven Central。
b). nuget.org-proxy - 此代理存储库访问 NuGet 图库。 .Net开发时使用的nuget包管理工具默认使用的组件库
2。托管存储库
repository with the type hosted
,也称为托管存储库,是一种存储库,将组件存储在存储库管理器中作为这些组件的权威位置。默认情况下,存储库管理器附带以下配置的托管存储库:
a). maven-releases - 此托管存储库使用
maven2 repository format
和发布版本策略。它 旨在成为您的组织发布内部版本 的存储库。您还可以将此存储库用于第三方组件,这些组件在外部存储库中不可用,因此无法通过配置的代理存储库检索。b). maven-snapshots - 将
maven2 repository format
与快照版本策略一起使用。它旨在成为您的组织发布内部开发版本(也称为快照)的存储库。c). nuget-hosted - 它旨在成为您的组织可以使用
NuGet repository format
. 在存储库中发布内部版本的存储库
只看术语不太容易理解,以A公司为例,A公司有自己的神器companyA.jar,依赖mybatis.jar,构建companyA项目时,会下载mybatis.jar 来自代理仓库,如果没有,则nexus 将从public maven 仓库下载它并将其存储在代理仓库中,这样nexus 就不需要从public maven 仓库下载mybatis再次.
companyA项目,公司其他开发者也需要,所以其开发者需要将其部署到hosted repository,以便其他人可以使用。