根据Nexus的说法,托管存储库是“由Nexus托管的存储库”。并且第三方存储库(托管存储库)应该用于公共Maven存储库中不可用的第三方依赖项。
托管存储库和代理存储库之间有什么区别?例如,JBoss版本被引用为代理存储库。为什么JBoss不发布第三方存储库?将其定义为托管存储库或代理存储库真的很重要吗?
答案 0 :(得分:8)
我不确定你在Nexus Book中找不到什么。简短版本是,代理存储库是您镜像的存储库,托管存储库是您通过Nexus软件在服务器上托管的存储库。托管包括由于某种原因不公开的第三方图书馆,见下文。
6.2.1。代理存储库
代理存储库是远程存储库的代理。默认情况下,Nexus附带以下已配置的代理存储库:
Apache Snapshots
此存储库包含Apache Software Foundation的快照版本。
Codehaus Snapshots
此存储库包含Codehaus的快照版本。
中部
这是包含发布组件的Central Repository。以前称为Maven Central,它是Apache Maven的默认内置存储库,并在Gradle,SBT或Ant / Ivy等其他构建工具中直接支持。 Nexus使用URL https://repo1.maven.org/maven2/通过HTTPS连接到中央存储库。
6.2.2。托管存储库
托管存储库是由Nexus托管的存储库。 Nexus附带以下配置的托管存储库:
第三方
此托管存储库应该用于公共Maven存储库中不可用的第三方依赖项。这些依赖关系的示例可以是商业的专有库,例如您的组织可能引用的Oracle JDBC驱动程序。
唱片集
此托管存储库是您的组织发布内部版本的地方。
快照
此托管存储库是组织发布内部快照的位置。
答案 1 :(得分:2)
引用Nexus Book:
repository with the type proxy
(也称为代理存储库)是链接到远程存储库的存储库。 然后从本地存储中完成对同一组件的后续请求,从而消除了再次从远程存储库中检索组件的网络带宽和时间开销。
默认情况下,存储库管理器附带以下已配置的代理存储库:
<强> a)中。 maven-central - 代理存储库访问Central Repository,以前称为Maven Central。
<强> B)。 nuget.org-proxy - 此代理存储库访问NuGet图库。它是用于.Net开发的nuget包管理工具使用的默认组件存储库。
repository with the type hosted
,也称为托管存储库,是将存储库管理器中的组件存储为这些组件的权威位置的存储库。
默认情况下,存储库管理器附带以下已配置的托管存储库:
<强> a)中。 maven-releases - 此托管存储库使用maven2 repository format
和发布版本策略。 旨在成为您的组织发布内部版本的存储库。您还可以将此存储库用于外部存储库中不可用的第三方组件,因此无法通过已配置的代理存储库进行检索。
<强> B)。 maven-snapshots - 将maven2 repository format
与快照版本策略一起使用。它旨在成为您的组织发布内部开发版本的存储库,也称为快照。
<强> c)中。 nuget-hosted - 它旨在成为您的组织可以使用NuGet repository format
在存储库中发布内部版本的存储库。
答案 2 :(得分:0)
仅通过术语来理解它们并不容易,例如以公司A为例,公司A有自己的工件公司A.jar,它取决于mybatis.jar,在构建companyA项目时,它将从代理存储库下载mybatis.jar ,如果没有,那么nexus将从公共maven存储库下载它并将其存储在代理存储库中,这样nexus不需要再次从公共maven存储库下载mybatis。
对于companyA项目,其他开发人员在该公司也需要它,因此其开发人员需要将其部署到托管存储库,以便其他人可以使用它。