即使包含凭据,也未经授权访问神器

时间:2011-07-15 19:33:20

标签: maven hudson artifactory

我正在尝试将zip文件部署到远程内部maven repo。(神器集成到hudson中)。

的pom.xml

...
<modelVersion>4.0.0</modelVersion>

<groupId>mygroupId</groupId>
<artifactId>myartifactid</artifactId>   

<version>1.0-SNAPSHOT</version>

<distributionManagement>
    <repository>
      <id>hudson</id>
      <name>hudson-releases</name>
      <url>http://url to repo</url>
    </repository>
  </distributionManagement>
...

的settings.xml

<servers>
<server>
  <id>hudson</id>
  <username>username</username>
  <password>password</password>
</server>
</servers> 

maven deploy

 mvn deploy:deploy-file -Durl=http://url -Dfile=file-1.0.0.zip  -Dpackaging=zip  -DpomFile=pom.xml

maven退出,返回码为401。

查看神器的日志

 2011-07-15 13:52:50,090 [DENIED DEPLOY] libs-release-local:somefile.zip for anonymous/192.168.220.146.

我不明白为什么maven不使用提供的凭据。 我在这做错了什么?

7 个答案:

答案 0 :(得分:13)

提示使用明文密码解决问题:

  • 访问并登录Artifactory。
  • 登录后,点击屏幕右上角的用户名。
  • 将密码然后clique放入em解锁按钮,启用加密密码。
  • 复制将在屏幕下方显示的标记,并将其粘贴到settings.xml文件中。如果您只想复制密码,请确保让它与下面显示的标记完全相同,包括密码开头的“\”。
  • 请记住使用POM.xml
  • 中定义到标记中的服务器ID调整标记
  • 点击“更新”按钮即可!检查下一个项目的出版是否一切都会顺利进行。

答案 1 :(得分:3)

Hudson很可能是缓存settings.xml。您可以尝试使用此URL http://your-hudson-url:8081/hudson/reload从磁盘重新加载配置,或者重新启动Hudson正在运行的容器。为我工作。

答案 2 :(得分:2)

由于某些原因,使用POM文件无效。所以我必须从命令行执行此操作。

mvn deploy:deploy-file -Durl=http://url -Dfile=file-1.0.0.zip  -Dpackaging=zip  -DartifactId=aid -DgroupId=groupId -DrepositoryId=repId -Dversion=1.0-SNAPSHOT

我仍然不知道为什么会这样。此外,我没有必要更改之前列出的settings.xml。

修改

此外,在神器的主页选项卡上,您可以通过单击“Maven设置 - &gt;生成设置”来获取maven设置。

答案 3 :(得分:2)

不要忘记检查您在 pom.xml 上放置<distributionManagement>的内容是否与 .m2 / settings.xml标记上的内容相对应。

答案 4 :(得分:1)

您正在发布快照版本,但尚未在POM的 distributionManagement 部分中指定 snapshotRepository 标记。或者尝试部署正常版本,看看是否有效

答案 5 :(得分:0)

默认情况下,Maven未设置为使用抢占式身份验证,并且在受到质疑时会遇到一些问题。

您可以尝试配置Maven的HttpClient Wagon以进行抢先身份验证(http://maven.apache.org/guides/mini/guide-http-settings.html),但我很少设法让它正常工作。 /> 既然你正在使用Jenkins \ Hudson,你可能想看一下Jenkins \ Hudson - Artifactory插件:

答案 6 :(得分:0)

更新Maven配置详细信息并添加nexus的凭据:

credentials: admin