如何在 Nexus 3 上激活 NuGet 存储库格式

How to activate NuGet repository format on Nexus 3

序言:

我想设置一个托管在我公司内部的 NuGet 存储库。
我们已经有一个 Nexus OSS 2.13 运行 所以我尝试在它上面设置一个 Nuget 托管存储库,并在那里上传我的包来测试它。然后,我在我的 Visual Studio 2015 上配置了 NuGet 存储库,以便在该 Nexus 服务器上添加一个。
我当时遇到的问题是 VS2015 使用(显然)nuget 提要 v3,而 Nexus 2.13 有 v2 提要。症状是浏览 nexus 存储库时出现 404 错误(当 nuget 调用 repo_url/Search())。
错误消息如下所示: 位于“/nexus nuget 存储库 url/Search()?[...]”的 v2 提要返回“404 未找到”

在网络浏览器中通过 repo url 浏览它(没有 /Search())工作正常,浏览 repo_url/FindPackagesById.
也是如此 我尝试尽可能地降级我的 NuGet vsix 版本,降到 v3.1.1,但没有版本适用于 v2 提要。

我接下来尝试的是:

我查阅了有关 nexus 的 Sonatype 网站,并看到了 Nexus v3 is said to handle NuGet, while v2 has no such mention。我决定尝试将 Nexus 3 安装在我们的 Nexus 2.13 旁边(在同一台机器上),看看它能提供什么。 我从 that same page as above 下载了 v3.0.2-02 并开始设置它。 我遵循了 the documentation on how to install it 的部分内容,跳过了一些由于 v2.13 安装而已经完成的部分。 (免责声明:虽然我考虑过安装 java 运行时环境和类似的东西,但我自己没有安装 v2.13

然后我将 nexus 3 作为一项服务启动,并成功到达主页并以管理员身份登录。

已阅读 a statement on hosted repository management in the documentation 说:

By default, the repository manager ships with the following configured hosted repositories:
[...]
nuget-hosted
   This hosted repository is where your organization can publish internal 
   releases in repository using the NuGet repository format. You can also 
   use this repository for third-party components that are not available in 
   external repositories, that could potentially be proxied to gain access 
   to the components.

我前往 Repository -> Repositories 部分并单击 "Create repository"。

只有 maven (group/hosted/proxy) 和原始 (group/hosted/proxy) 食谱可用。没有 Nuget,没有 npm,只有 maven...

稍微搜索一下,我在 System -> Bundles 部分发现 nuget 存储库 mvn:com.sonatype.nexus.plugins/nexus-repository-nuget/3.0.2-02 的包被列为 Installed
而 Maven 的 mvn:org.sonatype.nexus.plugins/nexus-repository-maven/3.0.2-02 被列为 Active.

我试图寻找一个可以激活捆绑包的地方,我想我在 $NEXUS_HOME/etc/startup.properties 找到了一个,第一行说:

# Bundles to be started on startup, with startlevel

并包含我添加的用于尝试激活 nuget 的行:

mvn\:com.sonatype.nexus.plugins/nexus-repository-nuget/3.0.2-02 = 10

然后我使用 > sudo service nexus3 restart 重新启动 nexus v3,重新登录到管理员,转到存储库,发现仍然没有可用的 nuget 配方。
我回到 Bundles 并看到 nuget 包仍然列为 Installed 而不是 Active.
我现在完全不知道我可以或应该做什么来简单地创建一个托管的 nuget 存储库,根据 nexus 的文档,它应该已经可用...

我错过了什么?
缺少文档所说的默认情况下可用的全新安装有什么问题?
如何在该 nexus v3 上创建托管的 NuGet 存储库?

我找到了激活 nexus-repository-nuget 插件的方法:

激活文件 bin/nexus.vmoptions 中的 karaf 控制台:

-Dkaraf.startLocalConsole=true

然后使用 运行 选项启动 nexus:

sudo bin/nexus run

最后在 karaf 控制台中,激活 nexus-repository-nuget 包:

bundle:start 214

现在只需退出控制台并停止 运行ner,然后作为服务启动。该包应该是 "Activated",您应该能够创建一个 nuget 存储库。