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

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

我们正在考虑 Nexus 和 Artifactory。选择其中一种而不是另一种的原因是什么?还有其他我们应该考虑的吗?

有帮助吗?

解决方案

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

  • 安装非常简单(从 1.2 开始,升级也非常简单)
  • 非常好的网络用户界面
  • 易于维护,几乎没有管理开销
  • 为您提供最近安装的、损坏的工件和错误的 RSS 源
  • 它可以对多个存储库进行分组,以便您可以镜像多个源,但只需要在 settings.xml 中包含一两个条目
  • 从 Maven 进行部署是开箱即用的(不需要 WebDAV 黑客等)。
  • 免费
  • 您可以重定向访问路径(即一些损坏的 pom.xml 需要“xxx”中的“a.b.c”)。您可以修复 Nexus 中的错误并将请求重定向到工件真正所在的位置,而不是修补 POM。

其他提示

我确信如果您只谈论存储来自“的二进制文件mvn deploy“两者都会做得很好。

我们非常广泛地使用 Artifactory 并进行所有升级。许多项目、部署的大量快照和代理的外部存储库。没有一个问题。我发现很难解释其他人如何经历其数据库、索引或其他任何问题。我们从来没有发生过这样的事。另外,Artifactory允许将数据存储在磁盘上,只使用DB来存储元数据,非常灵活(在这里查看更多内容).

是什么让这些应用程序 非常 不同之处在于他们与其他构建工具和技术集成的方法。 Nexus 和 Sonatype 几乎锁定在 Maven 和 m2eclipse 上。他们忽略了其他任何事情,直到最近才开始致力于他们自己专有的 Hudson 集成(请参阅他们的 Maven 3 网络研讨会). 编辑: 自 2017 年 Nexus 发布以来,这已不再正确 对其他构建工具的更大支持 编辑结束

Artifactory 提供了一个很棒的 Hudson、TeamCity 和 Bamboo 集成, , 和 摇篮 / 常春藤 支持。因此,虽然一旦您走出 Sonatype“舒适区”(Maven、m2eclipse),Nexus 就不会为您提供任何帮助,但 Artifactory 拥抱所有主要构建工具并与之协作。

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

如您所见,Artifactory 的思维方式是“跳出框框”,而 Nexus 的思考方式是“框内”,并且只关心 Maven 和 Maven 工件。

让 Artifactory 更容易使用的另一个原因是他们 基于云的 Artifactory Online 解决方案. 。每月只需​​花费大约 80 美元,您就拥有自己的 Artifactory 实例,无需为其专用任何服务器。

Artifactory 有一个 简单直接的 REST API, ,不知道 Nexus 是如何工作的。编辑 关系 还有一个 REST API 您也可以轻松使用。

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

Artifactory的支撑件的两个的文件系统和数据库存储后端。存储校验和基于二进制文件相同的存储只有一次,不管他们有多少次出现在回购,这使得Artifactory的更高效的存储明智的。移动和复制也很便宜,因为这种架构的(在的Nexus没有休息移动/复制 - 你必须在文件系统上移动的东西,然后在回购运行的纠正措施,以让它知道内容发生了变化)。

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

Artifactory的存储在数据库中,这意味着,如果出了问题,所有的文物都不见了的工件。 Nexus采用平面文件为您的珍贵文物,所以你不必担心他们所有迷路。

如果您需要其中任何一个的“Pro”功能(例如暂存存储库、工件升级、NuGet),那么您需要考虑其网站上显示的不同定价模型。

总之:

  • Artifactory专业版
    • 你付钱 每台服务器
    • 您可以支付更多费用来增加服务时间
  • Nexus Pro
    • 你付钱 每个座位, , IE。有多少开发者下载工件
    • 支持服务仅限东部时间周一至周五 0800-2000,无论您支付多少钱

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

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

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

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

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

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

最全对比: http://binary-repositories-comparison.github.io/

您应该使用Artifactory的 它的最新版本是一个真正的跳跃 你可以备份你的增量资源库,这意味着你可以有你所有的文物保存和维护 它具有一个易于使用的web界面 并且是很容易设置 我很喜欢它了很多 检查出其新版本2.0

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

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

撇开政治/宗教不谈,许可对某些组织来说是有影响的。

联系是 通用公共许可证 现在 AGPLv3 现在 Eclipse 公共许可证 (EPL).

人工工厂是 Apache 许可 LGPLv3 自产品 2.1 版起获得许可。

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

我看到的Nexus使用的不断增长,而Artifcatory用法generaly持平。

“在这里输入的图像描述”

/:

照片就是从这里 HTTP采取/blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/

还有矩阵对比 HTTP://文档.codehaus.org /显示/ MAVENUSER / Maven的+库+管理+功能+矩阵

双方Artifactory和Nexus或多或少类似的功能设置,但Artifactory的的LDAP支持使得它的Nexus上更具吸引力。虽然之间的关系也有LDAP支持,但在付费版本: - (

嗯......我与artifactory的经验是可怕的......但我是一个相对的新手,所以把它当作一粒盐。我总体的抱怨是,近期上传至artifactory的jar文件似乎并没有得到索引马上 - 在几个小时 - 而且似乎没有要强迫它的好方法。我已经试过这似乎好像他们应该有工作各种各样的事情,但没有。我一直在与m2eclipse的,添加依赖于我是从蚂蚁转换项目。当我尝试补充一点,我刚刚加入到artifactory的罐子,我希望它显示为中选择一个选择,但事实并非如此。

一个同事告诉我,他们已经安装了关系,到目前为止,他们喜欢它......但我不能保证它。我对尽快安装在Linux机器上,因为它可以找到我的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top