20

我正在尝试向我的组织引入体面的参考管理。之前在 Maven 中使用过 Nexus,我知道它远远优于在本地构建所有内容的方法。由于这是一个 .Net 商店,我想使用 NuGet 而不是 Maven。我知道二进制存储库将是正确处理的最重要部分,但没有在二进制存储库中托管 NuGet 存储库的经验。

在这种情况下是否有任何理由偏爱 Nexus 或 Artifactory?我们使用 Jenkins 和 svn 作为我们的 CI,如果这有什么不同的话。

4

2 回答 2

25

这是我们上次比较 Artifactory 与 Nexus 中的 NuGet 支持时发现的(免责声明 - 我与 JFrog 合作):

  1. 在 Artifactory 中,NuGet 支持自然地集成到产品中,这使得管理变得更加容易 - 只需将本地存储库标记为启用 NuGet 或为远程存储库设置远程 URL。多个 NuGet 存储库可以轻松地聚​​合在一个虚拟 NuGet 存储库下——与 Artifactory 中的任何其他存储库使用的方法相同;在 Nexus 中,您将需要定义一种新类型的存储库,设置一个新的专用安全领域,如果您需要现有存储库来响应 NuGet 请求,则必须为其添加特殊外观。这是 Nexus 中的一种通用方法,其中每种新类型的存储库(例如 P2)都需要多级配置更改。

  2. Nexus UI 中绝对没有集成 NuGet 包。您甚至无法搜索对管理和维护至关重要的 NUGet 工件(这就是为什么仅从 Visual Studio 搜索是不够的)。这主要是因为 Nexus 高度面向 Maven 和 Maven 布局;在 Artifactory 中,您可以像任何其他工件一样搜索和管理 NuGet 包。您可以在 UI中查看来自 nuspec 元数据的信息,甚至可以深入了解 NuPkg 包下各个文件的内容,并检查它们的内容。

  3. Artifactory 中的安全集成也更容易 - 无需手动生成特殊密钥,但密钥只是用户名和密码的组合或安全密码。如果您希望您的用户 NuGet 密码与 Artifactory 的 MS-AD/LDAP 集成同步,这非常棒;在 Nexus 中,NuGet 使用隔离的安全领域。

  4. Artifactory 实现了完整的 NuGet 搜索范围,包括更深奥但更有用的用例,并且底层实现结合使用内存缓存和持久的、预先计算的、可搜索的属性,以确保 NuGet 查询非常快速且可扩展即使对于一个巨大的存储库;不确定 Nexus 是否使用类似的优化。

我希望这会有所帮助。

PS。NuGet 支持是 Artifactory Pro 版本的一部分,自 2014 年 9 月起免费包含在 Nexus OSS 中。

于 2013-03-08T06:15:33.320 回答
9

Nexus 支持 NuGet,您可以直接在其中托管或代理您的 NuGet 存储库。看看这里

我是 Maven 和 Nexus 的粉丝,所以我有偏见。我用过Artifactory。这是一个很好的工具,但我发现 Nexus 在当时要好得多。我相信 NuGet 功能在 OSS 版本中也可用,但您可能需要仔细检查。

我不会争论为什么以及是否 Nexus 比 Artifactory 更好,因为这不公平,只会引发激烈的战争。我自己的理由是:Sonatype 是 Maven、Nexus 和 Maven Central 背后的人。这将它们置于事物的核心,因此他们对这些工具的内部结构及其互操作性的了解总是会更深入。

如果您熟悉并熟悉 Nexus,坦率地说,我认为您没有理由切换。但是,您可以自己决定。看看这里

于 2013-03-05T14:21:18.687 回答