从 Jenkins CI 推送到 Nexus 3 NuGet 存储库而不被要求提供凭据
Push to Nexus 3 NuGet-repository from Jenkins CI without being asked for credentials
这让我抓狂。我已经安装了 Nexus 3 OSS 用作私有 NuGet 存储库并创建了一个用户 foe jenkins。我按照文档显示的方式为 jenkins 用户获得了一个 ApiKey,现在我尝试使用
将我的包推送到 repo
nuget push .\AMAP.*.symbols.nupkg -Source http://nexus.local:8081/repository/nuget-hosted/ -ApiKey <JenkinsApiKeyHere>
但是如果我这样做,我会被要求输入用户名和密码。我尝试按照在网上找到的一些来源的建议为我的配置设置用户名和密码,如下所示:
nuget sources update -Name my-nuget -username jenkins -password <supersecretjenkinspwd>
但我仍然被要求输入用户名和密码!?顺便说一句,如 sonatype docs.
所示,授予了对 nexus 的匿名访问权限
正如您从上面看到的那样,我正在尝试从 jenkins 构建服务器执行此操作,并且我已经尝试过 nexus artifact uploader 插件但没有成功。它因空指针而失败:
java.lang.NullPointerException
at sp.sd.nexusartifactuploader.steps.NexusArtifactUploaderStep.getUsername(NexusArtifactUploaderStep.java:132)
所以我认为它有同样的问题。如何在没有用户交互的情况下将我的 NuGet 包推送到 Nexus?
好的,我自己找到了解决方案。我需要将 NuGet API-Key Realm 添加到活动领域。默认情况下,它是不活动的,从而防止 ApiKey 被视为有效凭证。
这是在 设置 -> 安全 -> 领域.
下完成的
这让我抓狂。我已经安装了 Nexus 3 OSS 用作私有 NuGet 存储库并创建了一个用户 foe jenkins。我按照文档显示的方式为 jenkins 用户获得了一个 ApiKey,现在我尝试使用
将我的包推送到 reponuget push .\AMAP.*.symbols.nupkg -Source http://nexus.local:8081/repository/nuget-hosted/ -ApiKey <JenkinsApiKeyHere>
但是如果我这样做,我会被要求输入用户名和密码。我尝试按照在网上找到的一些来源的建议为我的配置设置用户名和密码,如下所示:
nuget sources update -Name my-nuget -username jenkins -password <supersecretjenkinspwd>
但我仍然被要求输入用户名和密码!?顺便说一句,如 sonatype docs.
所示,授予了对 nexus 的匿名访问权限正如您从上面看到的那样,我正在尝试从 jenkins 构建服务器执行此操作,并且我已经尝试过 nexus artifact uploader 插件但没有成功。它因空指针而失败:
java.lang.NullPointerException
at sp.sd.nexusartifactuploader.steps.NexusArtifactUploaderStep.getUsername(NexusArtifactUploaderStep.java:132)
所以我认为它有同样的问题。如何在没有用户交互的情况下将我的 NuGet 包推送到 Nexus?
好的,我自己找到了解决方案。我需要将 NuGet API-Key Realm 添加到活动领域。默认情况下,它是不活动的,从而防止 ApiKey 被视为有效凭证。 这是在 设置 -> 安全 -> 领域.
下完成的