Nexus提供巧克力包装

Den*_*oer 5 chocolatey

我不是来自NuGet,也不知道如何设置Nexus来提供Chocolatey软件包。

Den*_*oer 6

这是您的操作方式:

  1. 创建一个指向https://chocolatey.org/api/v2/的NuGet代理存储库。这将允许您从Chocolatey.org缓存程序包,如果在部署期间发生故障,该程序将非常有用。
  2. 创建一个NuGet托管存储库。在这里,您将发布您的私人软件包。
  3. 创建一个包含上述存储库的组存储库。这是您--source在安装软件包时设置的标志。

上面创建的托管存储库下的NuGet选项卡将包含Package Source和Personal API Key。

因此,如果托管存储库具有:

Package Source = "https://example.com/nexus/service/local/nuget/choco-releases/"
Personal API Key = "d8471cc1-d350-3e45-a0c2-95d0b938e1d9"
Run Code Online (Sandbox Code Playgroud)

然后,调用打包并发布您的私有mypackage包如下所示:

choco pack
choco push --source "'https://example.com/nexus/service/local/nuget/choco-releases/'" -k="'d8471cc1-d350-3e45-a0c2-95d0b938e1d9'"
Run Code Online (Sandbox Code Playgroud)

要从私人和公共来源安装软件包,请使用组存储库作为来源。上面创建的组存储下的NuGet选项卡将使用Package Source。

因此,如果组存储库具有:

Package Source = "https://example.com/nexus/service/local/nuget/choco-all/"
Run Code Online (Sandbox Code Playgroud)

然后,安装您的私有和公共可用软件包的调用将如下所示:

choco install jdk8 mypackage --source "'https://example.com/nexus/service/local/nuget/choco-all/'" 
Run Code Online (Sandbox Code Playgroud)

jdk8包裹不在私人仓库中时;Nexus会将其从Chocolatey.org中提取,将其缓存在代理存储库中,然后将其发送到choco install被调用的位置。

  • 在 Nexus 3 中,URL 已更改为“http://hostname/repository/reponame/”,并且后面必须有一个“/”。 (4认同)
  • 请记住,由于发行权和公共存储库,社区存储库(可公开获得)上的大多数软件包都必须在运行时下载这些不可再发行的二进制文件。将软件包本地缓存到代理存储库不足以使其脱机。这就是为什么我们有一个名为Package Internalizer的工具,该工具可使这些软件包100%脱机且可靠的原因。https://chocolatey.org/docs/community-packages-disclaimer是一本很好的书。另请参阅https://chocolatey.org/docs/features-automatically-recompile-packages。 (2认同)