当前位置:  开发笔记 > 编程语言 > 正文

我们应该使用Nexus或Artifactory进行Maven回购吗?

如何解决《我们应该使用Nexus或Artifactory进行Maven回购吗?》经验,为你挑选了8个好方法。

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

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

我们正在考虑Nexus和Artifactory.优先选择其中一个的原因是什么?我们应该考虑其他人吗?



1> Evgeny Goldi..:

我敢肯定,如果你只谈论从" mvn deploy"中存储二进制文件,那么两者都可以.

我们非常广泛地使用Artifactory进行所有升级.大量项目,部署的大量快照和外部回购代理.没问题.我发现很难解释其他人如何遇到DB,索引或其他任何问题.没有发生在我们身上的事情.此外,Artifactory允许在磁盘上存储数据并且仅使用DB来存储元数据,它非常灵活(请参阅此处).

是什么让这些应用程序非常不同的是,他们对其他的构建工具和技术的集成方法.Nexus和Sonatype几乎被Maven和m2eclipse锁定.他们忽略了其他任何事情,并且最近才开始使用他们自己专有的Hudson集成(参见他们的Maven 3网络研讨会). 编辑:从2017年开始不再如此.Nexus 为其他构建工具 End of Edit提供了更大的支持

Artifactory提供了令人敬畏的Hudson,TeamCity和Bamboo集成以及Gradle/Ivy支持.因此,一旦你走出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. 编辑 Nexus 还有一个REST API,您也可以轻松使用它.

总而言之,对于Maven工件的基本存储,我认为两者都很好.但是当Nexus停止严格的"Maven存储库管理器"时,Artifactory会继续,从任何构建工具和CI服务器开始,作为任何类型二进制文件的通用"二进制存储".


老兄,这个回复是4年前发布的:)这不是关于Maven了吗?好吧呢!
对不起,我在这里闻到了FUD.Nexus肯定不会"锁定在Maven和m2eclipse",它与Jenkins,TeamCity和Bamboo完美融合.它有一个简单而直接的REST API; 每个Nexus功能都作为REST端点公开.说Nexus"只关心Maven和Maven文物"并不是真的; 它还支持.Net(NuGet),Gradle/Ivy,OSGI,并且可以托管Yum RPM存储库.在工件存储方面,包括tar,zip,rar,par以及标准java存档类型.
@EvgenyGoldin不会使他的评论不那么相关(除了FUD-part ^^).
既然这篇文章已有七年历史了,而且REST apis或多或少都是强制使用的工具,Nexus似乎仍然对此很不满意.使用Nexus3,其余的API基本上是rpc; 你必须上传一个小脚本来执行你想要做的事情.另一方面,Artifactory似乎暴露了一个经过深思熟虑的API,它具有良好的文档.

2> Aaron Digull..:

我不知道Artifactory,但这是我使用Nexus的原因:

死简单安装(自1.2以来,死亡简单升级也是如此)

非常好的Web UI

易于维护,几乎没有管理开销

为您提供最近安装的,损坏的工件和错误的RSS源

它可以对多个存储库进行分组,因此您可以镜像多个源,但在settings.xml中只需要一个或两个条目

从Maven部署开箱即用(不需要WebDAV黑客等).

免费

您可以重定向访问路径(即某些损坏的pom.xml需要"abc"来自"xxx").您可以修复Nexus中的错误并将请求重定向到工件实际所在的位置,而不是修补POM.


Nexus拥有出色的Web UI,可用于创建可以清除SNAPSHOTS的定期作业.Artifactory没有这个(还).

3> Yoav Landman..:

Artifactory的支持这两个文件系统和数据库存储后端.存储是基于校验和的,并且相同的二进制文件只存储一次,无论它们出现在repo中多少次,这使得Artifactory在存储方面更加高效.由于这种架构,移动和复制也非常便宜(在Nexus中没有用于移动/复制的REST - 你必须在文件系统上移动东西,然后在repo上运行纠正操作以让它知道内容已经改变).

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



4> Brian Fox..:

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


这个答案已经过时了.现在可以将Artifactory配置为在文件系统上存储对象.
只要我使用了Artifactory,它就拥有了对实际工件的文件系统支持.但我仍然使用数据库,因为我们的主数据库服务器被复制和备份.我没有看到文件系统存储本身比数据库更安全.没有什么可以反对Nexus,只是试图清除它.
由于这个原因,我们计划从Artifactory切换到Nexus.
这也是我们的不同之处.我想这主要是偏执狂,但是知道随时检查系统会很容易.
来自另一个腐败受害者的+1; 从那时起我就使用过Archiva和Nexus,两者看起来都很稳固.

5> RCross..:

如果您需要"Pro"功能(例如Staging repos,artifact artifact,NuGet),那么您需要考虑在其网站上显示的不同定价模型.

http://www.jfrog.com/home/v_pricing

http://www.sonatype.com/nexus/purchase

综上所述:

Artifactory Pro

按服务器付费

您可以为增加服务时间支付更多费用

Nexus Pro

你支付每个席位,即有多少开发人员下载工件

无论您支付多少,支持服务仅限于周一至周五0800-2000 ET

无论您有多少用户,Nexus Pro都提供的支持服务大致相当于Artifactory的7,450美元/年"Silver Value Pack".

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

仅在价格和支持上,Nexus Pro就有意义,直到你有67个用户,此时Artifactory成为更便宜的选择.

如果你在内部做所有的支持; 然而,这个魔术点大约是23个用户(Artifactory最基本的支持服务是每年2,750美元).



6> Sergey..:

我对Artifactory 2和Nexus 1.3进行了一些研究.我将在此列出我发现的主要差异:

Artifactory在DB中存储元数据和可选文件,Nexus直接写入文件系统.有专业人士.和利弊.对于每种方法.DB支持事务,而在FS存储的文件中可以直接访问.

Artifactory具有更高的系统要求,特别是对于磁盘空间.

Artifactory具有LDAP支持,而Nexus仅支持付费版本.另一方面,Nexus的免费LDAP插件可在Google代码上找到.

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


Nexus OSS现在支持多个版本的Ldap.

7> 小智..:

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



8> user3175893..:

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

    当时Jboss应用服务器不支持Sonatype .war部署,尽管它确实在Tomcat下运行.

    Sonatype目前没有为我提供亚马逊机器映像(AMI),我可以快速站起来测试.

    Bitnami提供Artifactory AMI,只需几分钟就可以站起来,再花几分钟来配置,可能需要几十分钟才能完成,这取决于你想要达到的目标.

    Artifactory在云中提供了Artifactory的SaaS版本,因此您可以专注于完成任务而不是基础架构.

    我没有使用Nexus的经验,但我发现Artifactory非常直观且易于配置,至少在最初阶段.

    添加 - 我注意到Artifactory用户指南,对于经验丰富的专业人士来说可能没问题,对于一些深入的解释有点轻松.例如,RedHat的Jboss EAP Enterprise Repo说,开始时,一个解压缩,然后加载一个存储库.一切顺利但是当我试图查看导入的工件Artifactory报告零工件?没有错误或警告所以我现在正在寻找解释.这是正常还是不正常?在doco中的简单解释可以快速指出一个正确的方向.作为一个好的贡献者,我将这些评论添加到项目中,以便其他初学者受益.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有