我们正在使用Maven进行大型构建过程(> 100个模块)。我们一直在外部控制中存储外部依赖项,并使用它来更新本地存储库。
但是,我们已准备好升级到可以缓存中心的本地仓库,这样我们就不必主动下载所有第三方(但我们仍然可以拥有本地仓库)。此外,我们希望从夜间构建中发布内部构建工件,以便开发人员不必构建世界。
我们正在考虑Nexus和Artifactory。优先选择其中一个的原因是什么?我们应该考虑其他人吗?
答案 0 :(得分:115)
我敢肯定,如果你只谈论从“mvn deploy
”存储二进制文件,那么两者都可以。
我们非常广泛地使用Artifactory进行所有升级。大量项目,部署的大量快照和外部回购代理。没问题。我发现很难解释其他人如何遇到DB,索引或其他任何问题。没有发生在我们身上的事情。此外,Artifactory允许在磁盘上存储数据并且仅使用DB来存储元数据,它非常灵活(see more here)。
这些应用程序非常的不同之处在于它们与其他构建工具和技术集成的方法。 Nexus和Sonatype几乎被锁定在Maven和m2eclipse上。他们忽略了其他任何东西,并且最近才开始使用他们自己专有的Hudson集成(参见他们的Maven 3 webinar)。
编辑:截至2017年,Nexus不再提供a much larger support for other build tools 编辑结束
Artifactory提供了令人敬畏的Hudson, TeamCity and Bamboo integration和Gradle / Ivy支持。因此,一旦你走出Sonatype“舒适区”(Maven,m2eclipse),Nexus就什么都没给你,Artifactory拥抱并与所有主要的构建工具合作。
事实上,能够从Hudson部署构建工件,当作业完成时,而不是“mvn deploy
”是一个巨大的区别:Artifactory Hudson插件对所有工件进行原子般的部署立即,仅在构建作业成功完成时。 “mvn deploy
”在每个模块之后运行,如果构建作业在中间失败,则可以部署一组部分工件。在模块完成时从Maven部署而不是在作业完成时从构建服务器部署是非常糟糕的事情。
如你所见,Artifactory认为“在盒子外面”,而Nexus认为“在盒子里面”并且只关心Maven和Maven文物。
使Artifactory更易于访问的其他内容是cloud-based Artifactory Online solution。每月大约80美元,你有自己的Artifactory实例,不需要专门为它服务。
Artifactory有一个simple and straightforward REST API,不知道Nexus是如何工作的。 您可以轻松使用的修改 Nexus has also a REST API。
总而言之,对于Maven工件的基本存储,我认为两者都很好。 但是,当Nexus停止严格的“Maven存储库管理器”时,Artifactory会继续使用,作为任何类型二进制文件的通用“二进制存储”,来自任何构建工具和CI服务器。
答案 1 :(得分:71)
我不知道Artifactory,但这是我使用Nexus的原因:
答案 2 :(得分:27)
Artifactory支持两个文件系统和数据库存储后端。存储是基于校验和的,并且相同的二进制文件只存储一次,无论它们出现在repo中多少次,这使得Artifactory在存储方面更加高效。由于这种架构,移动和复制也非常便宜(在Nexus中没有用于移动/复制的REST - 你必须在文件系统上移动东西,然后在repo上运行纠正操作以让它知道内容已经改变)。
另一个重要的区别是Artifactory与Hudson和TeamCity的独特集成,用于捕获有关已部署工件,已解析依赖项和与构建运行相关的环境数据的信息,从而提供完整的构建可跟踪性。
答案 3 :(得分:22)
Artifactory将工件存储在数据库中,这意味着如果出现问题,所有工件都将消失。 Nexus使用平面文件作为您珍贵的文物,因此您不必担心它们都会迷失。
答案 4 :(得分:9)
如果您需要“Pro”功能(例如Staging repos,artifact artifact,NuGet),那么您需要考虑在其网站上显示的不同定价模型。
总结:
无论您拥有多少用户,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美元)。
答案 5 :(得分:8)
我对Artifactory 2和Nexus 1.3进行了一些研究。我将在此列出我发现的主要差异:
答案 6 :(得分:7)
你应该使用Artifactory 它的最新版本是一个真正的跳跃 您可以逐步备份存储库,这意味着您可以保存和维护所有工件 它有一个易于使用的网络用户界面 并且很容易设置 我非常喜欢它 看看它的新版本2.0
答案 7 :(得分:5)
从学习者的角度来看,我注意到两者之间的一些具体差异。
答案 8 :(得分:3)
除了所有政治/宗教外,许可证对某些组织有所帮助。
Nexus GPL 现在 AGPLv3 ,现在Eclipse Public License (EPL)。
Artifactory是 Apache许可 LGPLv3,自产品版本2.1起获得许可。
您可能还想考虑Archiva,仅供比较。它是Apache 2.0许可的。
答案 9 :(得分:1)
我看到Nexus的使用率正在增长,而Artifactory的使用率通常保持不变。
图片来自http://blog.sonatype.com/2014/11/42000-nexus-repository-managers-and-growing/
还有矩阵比较http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix
答案 10 :(得分:-2)
Artifactory和Nexus都具有或多或少类似的功能集,但Artifactory的LDAP支持使其比Nexus更具吸引力。虽然Nexus也支持LDAP,但付费版本: - (
答案 11 :(得分:-2)