从Jenkins CI推送到Nexus 3 NuGet存储库,而不会要求提供凭据

时间:2018-06-05 12:48:18

标签: jenkins nuget nexus3

这让我疯了。我已经安装了Nexus 3 OSS作为私有NuGet存储库并创建了一个用户敌人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>

但我仍然要求输入用户名和密码!?顺便说一句,授予对nexus的匿名访问权限,如sonatype docs

所示

正如您从上面所看到的,我正在尝试从jenkins构建服务器执行此操作,并且我已经尝试了nexus artifact uploader插件但没有成功。它失败了NullPointer:

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

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

1 个答案:

答案 0 :(得分:7)

好的,我自己找到了解决方案。我需要将 NuGet API-Key Realm 添加到活动领域。默认情况下,它不活动,从而阻止ApiKey被视为有效凭证。 这是在设置 - &gt;下完成的。安全 - &gt;领域