如何在 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 存储库。
序言:
我想设置一个托管在我公司内部的 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 存储库。