为什么我不能上传神器到archiva(未经授权),但我可以用管理员用户下载?

时间:2014-09-24 09:00:44

标签: maven repository archiva

我正在与 archiva 合作约一年,

我通过 archiva GUI手动上传我的罐子,它运行正常。

现在我想通过maven deploy上传一个工件,问题是我得到 401-Unauthorized 。 请记住:

1。)我可以从这个存储库下载没有问题。

2。)我使用管理员用户。

3.。)我可以手动上传此用户。

这是我得到的日志:

[com:apinterface.parent] Downloading: http://xx.xx.xx.xx:9080/archiva/repository/snapshots/com/apinterface.parent/1.0-SNAPSHOT/maven-metadata.xml

[11:43:39][Step 1/3] [INFO] ------------------------------------------------------------------------
[11:43:39][Step 1/3] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project apinterface.parent: Failed to deploy artifacts: Could not transfer artifact com:apinterface.parent:pom:1.0-20140924.084338-1 from/to snapshots (http://xx.xx.xx.xx:9080/archiva/repository/snapshots): Failed to transfer file: http://xx.xx.xx.xx:9080/archiva/repository/snapshots/com/apinterface.parent/1.0-SNAPSHOT/apinterface.parent-1.0-20140924.084338-1.pom. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]

1 个答案:

答案 0 :(得分:6)

这应该是因为您尚未配置Maven在部署阶段使用Archiva用户名/密码上传工件。

我假设您已经在pom文件中配置了distributionManagement部分。

<distributionManagement>
    <snapshotRepository>
        <id>snapshots</id>
        <name>Internal Snapshots</name>
        <url>http://xx.xx.xx.xx:9080/archiva/repository/snapshots/</url>
    </snapshotRepository>
    <repository>
        <id>releases</id>
        <name>Internal Releases</name>
        <url>http://xx.xx.xx.xx:9080/archiva/repository/releases</url>
    </repository>
</distributionManagement>

您的Maven设置文件中应该有匹配ID的服务器(如下面的示例所示),以配置maven在上传(部署)工件时应使用的用户名/密码

<settings>
  <servers>
    <server>
      <id>snapshots</id>
      <username>archiva-user</username>
      <password>archiva-pwd</password>
    </server>
    <server>
      <id>releases</id>
      <username>archiva-user</username>
      <password>archiva-pwd</password>
    </server>
  </servers>
</settings>