我正在尝试向我的组织介绍体面的参考管理。之前曾经在Maven中使用过Nexus,但我知道它比在本地构建 所有内容 的方法要优越得多。因为这是一个.Net商店,所以我想使用NuGet代替Maven。我知道二进制存储库将是最重要的方面,但是没有在二进制存储库中托管NuGet存储库的经验。
在这种情况下,是否有任何理由支持Nexus或Artifactory?如果有任何区别,我们将svn作为Jenkins作为CI。
这是我们上次比较Artifactory和Nexus中的NuGet支持时发现的结果(免责声明-我在JFrog的支持下):
在Artifactory中,NuGet支持自然集成到产品中,这使管理变得更加容易-只需将本地存储库标记为已启用NuGet或为远程回购设置远程URL。多个NuGet存储库可以轻松地聚集在单个虚拟NuGet存储库中-与Artifactory中任何其他存储库相同的方法;在Nexus中,您将需要定义一种新的存储库类型,设置一个新的专用安全领域,并且如果您需要一个现有的存储库来满足NuGet请求,则必须为其添加特殊的外观。这是Nexus中的一种通用方法,其中每种新型存储库(例如P2)都需要进行多级配置更改。
Nexus UI中绝对没有集成NuGet软件包。您甚至无法搜索NUGet工件,这对于管理和维护至关重要(这就是为什么仅从Visual Studio进行搜索是不够的)。这主要是由于Nexus高度重视Maven和Maven布局;在Artifactory中,您可以像其他任何工件一样搜索和管理NuGet软件包。您可以从UI中的nuspec元数据中查看信息,甚至可以深入研究NuPkg包下单个文件的内容,并检查其内容。
安全集成在Artifactory中也更加容易-无需手动生成特殊密钥,而密钥只是用户名和密码或安全密码的组合。如果您希望用户的NuGet密码与Artifactory的MS-AD / LDAP集成同步,那就太好了;在Nexus中,NuGet使用隔离的安全领域。
Artifactory实现了完整的NuGet搜索范围,包括更深奥但有用的用例,并且底层实现结合了内存缓存和持久性,预先计算的可搜索属性,以确保NuGet查询非常快速且可扩展即使是巨大的资料库;不确定Nexus是否使用类似的优化方法。
希望对您有所帮助。
PS。NuGet支持是Artifactory Pro版本的一部分,自2014年9月起在Nexus OSS中免费提供。