0

我试图弄清楚是否可以在运行 Artifactory 服务器的本地机器上重用Artifactory 的 maven repo。以下详细说明了我正在尝试做的事情。

我有一台运行 Artifactory 的服务器,我计划在同一台服务器上设置 Jenkins。如果可能的话,我希望服务器上只有一个 Maven 存储库。由于 Artifactory 已经在那里运行,我希望它正在维护某种 maven 存储库(我四处寻找但找不到它)。

目前,当 Jenkins 使用 Maven 构建 maven 项目时,它会将依赖的 jar 下载到服务器上的本地 maven repo(一个 .m2 文件夹)中。取而代之的是,是否可以将 maven 正在使用的 settings.xml 指向 Artifactory 下的某个本地文件夹,其中 artifactory 存储了所有 jar?基本上,我希望 maven 认为所有 jar 都已在本地 repo 中可用(由 artifactory 维护),因此它不必从 artifactory 下载所有 jar。

如果 maven 和 artifactory 可以共享同一个 repo 文件夹,这将是可能的。但是,如果 Artifactory 使用自己的结构来维护 maven 存储库(不同于 maven 的 .m2 文件夹的结构),这是不可能的。

我应该声明我对 Artifactory 的了解非常少,除了它是一个 Maven 存储库管理器这一事实。

4

1 回答 1

1

在这里回答我自己的问题,因为更多的研究表明这是不可能的。我在 SO 上发现了另一个问题:

Artifactory 使用 Java Content Repository (JCR) 标准来存储工件。它是各种存储实现之上的抽象,包括文件系统、关系数据库等。无论如何,JCR 通过校验和管理存储(以减小大小和带宽),因此存储库不能在文件系统中直接浏览。默认实现是将二进制文件存储在文件系统中(在 $ARTIFACTORY_HOME/data/filestore 中,元数据在 Derby DB 中。

Artifactory 如何管理存储库

Nexus 家伙的一篇博文也表明这是不可能的。 对比 Nexus 和 Artifactory -> 对比 #2

于 2013-01-07T21:30:31.040 回答