120

我们正在使用 Maven 进行大型构建过程(> 100 个模块)。我们一直在源代码管理中存储我们的外部依赖项,并使用它来更新本地存储库。

但是,我们已经准备好升级到可以缓存中央的本地存储库,这样我们就不必主动下载所有第 3 方(但我们仍然可以从本地存储库中提取)。此外,我们希望通过每晚构建发布我们的内部构建工件,以便开发人员不必构建世界。

我们正在考虑 Nexus 和 Artifactory。偏爱其中一个的原因是什么?还有其他我们应该考虑的吗?

4

12 回答 12

120

我敢肯定,如果您只谈论从“ mvn deploy”存储二进制文件,两者都可以。

我们非常广泛地使用 Artifactory,并在此过程中进行所有升级。许多项目,部署的大量快照和代理的外部存储库。没有一个问题。我发现很难解释其他人如何遇到其数据库、索引或其他任何问题。类似的事情从未发生在我们身上。此外,Artifactory 允许将数据存储在磁盘上,并且只使用数据库来存储元数据,它非常灵活(请参阅此处的更多内容)。

使这些应用程序非常不同的是它们与其他构建工具和技术集成的方法。Nexus 和 Sonatype 几乎都锁定在 Maven 和 m2eclipse 上。他们忽略了其他任何事情,直到最近才开始致力于他们自己的专有 Hudson 集成(请参阅他们的Maven 3 网络研讨会)。 编辑:自 2017 年起,这不再是真的 Nexus为其他构建工具提供了更大的支持 编辑结束

Artifactory 提供了很棒的Hudson、TeamCity 和 Bamboo 集成,以及Gradle / Ivy支持。因此,当您走出 Sonatype“舒适区”(Maven、m2eclipse)时,尽管 Nexus 没有给您任何帮助,但 Artifactory 拥抱并与所有主要的构建工具协作。

事实上,能够在工作完成后从 Hudson 部署构建工件,而不是通过 " " 部署是一个巨大的区别:Artifactory Hudson 插件会立即mvn deploy对所有工件进行原子式部署,只有在构建作业成功完成时。" " 在每个模块之后运行,如果构建作业在中间失败,则可以部署部分工件集。在模块完成时从 Maven 部署,而不是在作业完成时从构建服务器进行部署,这确实是一件坏事。mvn deploy

如您所见,Artifactory 认为“框外”而 Nexus 认为“框内”并且只关心 Maven 和 Maven 工件。

使 Artifactory 更易于访问的其他因素是他们基于云的 Artifactory Online 解决方案。每月大约 80 美元,您就拥有了自己的 Artifactory 实例,无需为它专门配置任何服务器。

Artifactory 有一个简单直接的 REST API,不知道它在 Nexus 上是如何工作的。 Edit Nexus还有一个 REST API,您也可以轻松使用。

总而言之,对于 Maven 工件的基本存储,我认为两者都很好。但是,虽然 Nexus 不再是严格意义上的“Maven 存储库管理器”,但 Artifactory 仍在继续,它是来自任何构建工具和 CI 服务器的任何类型二进制文件的通用“二进制存储”。

于 2010-11-03T22:47:41.160 回答
75

我不了解 Artifactory,但以下是我使用 Nexus 的原因:

  • 非常简单的安装(从 1.2 开始,也有非常简单的升级)
  • 非常好的网络用户界面
  • 易于维护,几乎没有管理开销
  • 为您提供最近安装、损坏的工件和错误的 RSS 提要
  • 它可以对多个存储库进行分组,因此您可以镜像多个源,但在 settings.xml 中只需要一个或两个条目
  • 从 Maven 部署开箱即用(不需要 WebDAV hack 等)。
  • 免费
  • 您可以重定向访问路径(即一些损坏的 pom.xml 需要来自“xxx”的“abc”)。您可以修复 Nexus 中的错误并将请求重定向到工件实际所在的位置,而不是修补 POM。
于 2008-12-17T11:40:36.887 回答
27

Artifactory 支持文件系统和数据库存储后端。存储是基于校验和的,相同的二进制文件只存储一次,无论它们在 repo 中出现多少次,这使得 Artifactory 的存储效率更高。由于这种架构,移动和复制也非常便宜(在 Nexus 中,移动/复制没有 REST - 您必须在文件系统上移动内容,然后在存储库上运行纠正措施以使其知道内容已更改)。

另一个重要的区别是 Artifactory 与 Hudson 和 TeamCity 具有独特的集成,用于捕获有关已部署的工件、已解决的依赖项和与构建运行相关的环境数据的信息,从而提供完整的构建可追溯性。

于 2010-04-22T22:08:15.867 回答
21

Artifactory 将工件存储在数据库中,这意味着如果出现问题,您的所有工件都会消失。Nexus 为您的珍贵文物使用平面文件,因此您不必担心它们都会丢失。

于 2008-12-25T18:33:20.460 回答
9

如果您需要其中任何一个的“Pro”功能(例如 Staging repos、工件促销、NuGet),那么您需要考虑不同的定价模型,这些定价模型显示在他们的网站上。

总之:

  • 神器专业版
    • 您为每台服务器付费
    • 您可以为增加的服务时间支付更多费用
  • 连结临
    • 您为每个席位付费,即有多少开发人员下载了工件
    • 支持服务仅限美国东部时间周一至周五 0800-2000,无论您支付多少费用

无论您有多少用户,Nexus Pro 提供的支持服务大致相当于 Artifactory 每年 7,450 美元的“白银超值包”。

7,450 美元/年将为您购买大约 67 个 Nexus Pro 席位(1-50 个 @ 108 美元,其余的 @ 120 美元)。

仅就价格和支持而言,Nexus Pro 在您达到 67 个用户之前是有意义的,此时 Artifactory 成为更便宜的选择。

如果您在内部提供所有支持;然而,这个神奇的点是大约 23 个用户(Artifactory 最基本的支持服务是 2,750 美元/年)。

于 2013-08-19T11:52:22.413 回答
8

我最近对 ​​Artifactory 2 和 Nexus 1.3 做了一些研究。我将在这里列出我发现的主要区别:

  • Artifactory 将元数据和可选文件存储在 DB 中,Nexus 直接写入文件系统。有优点。和缺点。对于每种方法。DB支持事务,而FS中存储的文件可以直接访问。
  • Artifactory 对系统有更高的要求,尤其是对磁盘空间的要求。
  • Artifactory 支持 LDAP,而 Nexus 仅在付费版本中提供。另一方面,适用于 Nexus 的免费 LDAP 插件可在 Google 代码上找到。

最完整的对比:http ://binary-repositories-comparison.github.io/

于 2009-10-08T12:56:06.740 回答
7

你应该使用 Artifactory 它的最新版本是一个真正的跳跃你可以增量备份你的存储库,这意味着你可以保存和维护所有的工件它有一个易于使用的 web ui 并且非常容易设置我非常喜欢它检查推出新版本 2.0

于 2009-01-07T06:38:23.413 回答
5

从学习者的角度来看,我注意到两者之间的一些具体差异。

  1. 当时 Jboss 应用服务器不支持 Sonatype .war 部署,尽管它确实在 Tomcat 下运行。
  2. Sonatype 目前没有为我提供 Amazon 系统映像 (AMI),我可以快速站起来进行测试。
  3. 一个 Artifactory AMI 由 Bitnami 提供,只需几分钟即可站起来,然后再配置几分钟,可能需要几十分钟,具体取决于您要实现的目标。
  4. Artifactory 在云中提供了 Artifactory 的 SaaS 版本,因此您可以专注于完成工作而不是基础设施。
  5. 我没有使用 Nexus 的经验,但我发现 Artifactory 非常直观且易于配置,至少在最初是这样。
  6. 补充 - 我确实注意到 Artifactory 用户指南,对于经验丰富的专业人士来说可能没问题,但对于一些深入的解释来说有点轻率。例如,一开始,解压缩然后添加一个存储库,比如 RedHat 的 Jboss EAP Enterprise Repo。一切都很好,但是当我尝试查看导入的工件时 Artifactory 报告零工件?没有错误或警告,所以我现在正在寻找解释。这是正常还是不正常?doco 中的一个简单解释可以快速指出正确的方向。作为一个优秀的贡献者,我将这些评论添加到项目中,以使其他初学者受益。
于 2014-01-09T03:31:27.620 回答
3

撇开所有政治/宗教不谈,许可对某些组织产生了影响。

Nexus 是GPL ,现在是AGPLv3,现在是Eclipse Public License (EPL)

Artifactory 是Apache 许可的 LGPLv3,自该产品的 2.1 版起获得许可。

您可能还想考虑Archiva,只是为了比较。它是 Apache 2.0 许可的。

于 2009-01-27T21:14:00.813 回答
2

我看到 Nexus 的使用量正在增长,而 Artifcatory 的使用量一般保持不变。

在此处输入图像描述

图片取自这里http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growth/

还有矩阵比较http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

于 2015-02-23T09:42:42.667 回答
-2

Artifactory 和 Nexus 都有或多或少相似的功能集,但 Artifactory 的 LDAP 支持使其比 Nexus 更具吸引力。虽然 Nexus 也有 LDAP 支持,但在付费版本中 :-(

于 2009-09-22T07:29:13.420 回答
-2

嗯……我在人工制品方面的经验很糟糕……但我是一个相对新手,所以对它持保留态度。我的总体抱怨是最近上传到 Artifactory 的 jar 文件似乎没有立即被索引 - 就像几个小时一样 - 似乎没有一个好的方法来强制它。我尝试了各种看起来好像它们应该起作用的东西,但没有。我一直在使用 m2eclipse,将依赖项添加到我从 ant 转换的项目中。当我尝试添加一个刚刚添加到工件的 jar 时,我希望它在选择器中显示为一个选项,但它没有。

一位同事告诉我,他们已经安装了 nexus,到目前为止他们喜欢它……但我还不能保证。只要 IT 能找到我,我就会将它安装在 Linux 机器上。

于 2010-11-01T21:17:59.243 回答