从Jenkins CI推送到Nexus 3 NuGet存储库,而无需输入凭据

Fra*_*ank 1 nuget jenkins nexus3

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

nuget push .\AMAP.*.symbols.nupkg -Source http://nexus.local:8081/repository/nuget-hosted/ -ApiKey <JenkinsApiKeyHere>
Run Code Online (Sandbox Code Playgroud)

但是,如果执行此操作,则会要求我输入用户名和密码。我尝试根据网络上的某些来源的建议将用户名和密码设置为我的配置,如下所示:

nuget sources update -Name my-nuget -username jenkins -password <supersecretjenkinspwd>
Run Code Online (Sandbox Code Playgroud)

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

从上面可以看到,我正在尝试通过jenkins构建服务器执行此操作,并且我已经尝试了nexus工件上传器插件,但未成功。NullPointer失败:

java.lang.NullPointerException
    at sp.sd.nexusartifactuploader.steps.NexusArtifactUploaderStep.getUsername(NexusArtifactUploaderStep.java:132)
Run Code Online (Sandbox Code Playgroud)

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

Fra*_*ank 9

好的,我自己找到了解决方案。我需要将NuGet API密钥领域添加到活动领域。默认情况下,它是不活动的,因此防止将ApiKey视为有效凭据。这是在Settings-> Security-> Realms下完成的