从 Jenkins CI 推送到 Nexus 3 NuGet-repository,而无需输入凭据



这让我发疯了。我已经安装了Nexus 3 OSS作为私有NuGet存储库,并创建了一个用户敌人jenkins。我以文档显示的方式为 jenkins 用户获得了一个 ApiKey,现在我尝试

使用
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>

但是仍然要求我输入用户名和密码!?顺便说一下,对nexus的匿名访问是授予的,如sonatype文档中所示。

正如你从上面看到的,我正在尝试从 jenkins 构建服务器执行此操作,我已经尝试了 nexus 工件上传器插件但没有成功。它失败并显示空指针:

java.lang.NullPointerException
at sp.sd.nexusartifactuploader.steps.NexusArtifactUploaderStep.getUsername(NexusArtifactUploaderStep.java:132)

所以我认为它有同样的问题。如何在没有用户交互的情况下将我的 NuGet 包推送到 Nexus?

好的,我自己找到了解决方案。我需要将NuGet API 密钥领域添加到活动领域。默认情况下,它不处于活动状态,从而防止将 ApiKey 视为有效凭据。 这是在">设置"->"安全性"-">域"下完成的。

最新更新