2013-01-07 63 views
0

我试图找出是否有可能重用 Artifactory的服务器运行本地机器上的maven回购。以下详细介绍了我正在尝试做的事情。重用Artifactory的maven回购

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

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

如果maven和artifactory可以共享相同的repo文件夹,这将是可能的。但是,如果Artifactory使用自己的结构来维护Maven仓库(除了结构maven遵循.m2文件夹的结构之外),这是不可能的。

我应该说我对Artifactory知之甚少,除了它是一个Maven仓库管理器。

+0

我不太确定如果我回答你的问题或不在这里,所以我把它作为一个评论(也许重写你的问题):Artifactory是一个maven回购,所以如果它已经存在,所有你需要做的是指向计算机的settings.xml来使用它,它会的。我假设Artifactory已经设置为工作k正确。 [这里是一些关于settings.xml的文档](http://maven.apache.org/settings.html) –

+0

我很困惑的一件事是“Jenkins使用maven仓库”的概念。你的意思是詹金斯建立的项目吗? –

+0

对不起,如果我的问题不清楚,我会修改它。 – IceMan

回答

1

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

Artifactory使用Java内容存储库(JCR)标准来存储工件。它是各种存储实现的抽象,包括文件系统,关系数据库等。在任何情况下,JCR都通过校验和来管理存储(以减小大小和带宽),因此存储库不能直接在文件系统中进行浏览。默认的实现是由Nexus的家伙存储在文件系统中的二进制文件($ ARTIFACTORY_HOME /数据/文件存储内部和德比DB元数据。

How Artifactory manages repos

博客文章也认为,这是不可能的 Contrasting Nexus and Artifactory -> Contrast #2