Maven 2 我们应该使用Nexus还是Artifactory进行Maven回购?

Maven 2 我们应该使用Nexus还是Artifactory进行Maven回购?,maven-2,nexus,artifactory,Maven 2,Nexus,Artifactory,我们使用Maven进行大型构建过程(>100个模块)。我们一直在源代码管理中存储我们的外部依赖项,并使用它来更新本地repo 然而,我们已经准备好升级到可以缓存central的本地回购协议,这样我们就不必主动下载所有第三方(但我们仍然可以从本地回购协议中获取)。此外,我们希望从夜间构建中发布我们的内部构建工件,这样开发人员就不必构建世界 我们正在考虑Nexus和Artifactory。为什么选择其中一个而不是另一个?还有其他我们应该考虑的吗?我不知道Artifactory,但以下是我使用Nexu

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

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


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

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

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

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

您应该使用Artifactory 它的最新版本是一个真正的飞跃 您可以增量备份存储库,这意味着您可以保存和维护所有工件 它有一个易于使用的web ui 而且很容易设置 我很喜欢
看看它的新版本2.0

抛开政治/宗教不谈,许可对一些组织来说是有区别的

Nexus现在是GPL AGPLv3,现在是

Artifactory从产品的2.1版开始就获得Apache许可


你也可以考虑一下,只是为了比较。它是Apache2.0许可的。

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

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

  • Artifactory在DB中存储元数据和可选文件,Nexus直接写入文件系统。每种方法都有优点和缺点。DB支持事务,而在FS中存储的文件可以直接访问
  • Artifactory对系统有更高的要求,特别是对磁盘空间的要求
  • Artifactory支持LDAP,而Nexus只支持付费版本。另一方面,Nexus的免费LDAP插件可以在Google代码中找到
最完整的比较:

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


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

Hmmm…我在Artifactory方面的经验非常糟糕…但我是一个相对新手,所以我的总体抱怨是,最近上传到Artifactory的jar文件似乎没有立即被索引——就像在几个小时内一样——而且似乎没有一个好的方法来强制索引。我尝试了各种事情,似乎它们应该工作,但没有。我一直在使用m2eclipse,添加dependenc当我尝试添加一个我刚刚添加到artifactory的jar时,我希望它在选择器中显示为一个选项,但它没有


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

我确信,如果你只讨论存储来自“
mvn deploy
”的二进制文件,这两个设备都会很好

我们在所有升级过程中都广泛使用Artifactory。部署了大量项目、大量快照和外部repo代理。没有一个问题。我发现很难解释其他人在数据库、索引或任何其他方面遇到的问题。我们从未遇到过类似的情况。此外,Artifactory允许在数据库上存储数据一个磁盘,并且只使用一个数据库来存储元数据,它非常灵活()

让这些应用程序与众不同的是它们与其他构建工具和技术的集成方式。Nexus和Sonatype几乎都锁定在Maven和m2eclipse上。它们忽略了其他任何东西,直到最近才开始开发自己的专有Hudson集成(见其第二部分)。 编辑:自2017年Nexus提供编辑结束时,这不再是事实

Artifactory提供了一个很棒的和/或支持。因此,当你走出Sonatype的“舒适区”(Maven,m2eclipse)时,Nexus不会给你任何东西,Artifactory会与所有主要的构建工具相结合

事实上,能够在作业完成时从Hudson部署构建工件,而不是通过“
MVNDeploy
”部署构建工件是一个巨大的区别:Arti