现在将工件部署到 archiva maven 存储库时,在 jenkins 中会出现 401 未经授权的情况

问题描述 投票:0回答:6

在我将 Jenkins 升级到 1.494 之前,这曾经有效。现在,当使用构建升级插件将 war 工件复制到快照存储库时,我在 Jenkins 中收到此错误:

    ERROR: Failed to deploy artifacts: Could not transfer artifact com.blah.data:RestWebServices:war:1.0-20121224.163825-2 from/to archiva.apache.snapshots (http://10.31.31.64:8080/archiva/repository/snapshots): Failed to transfer file: http://10.31.31.64:8080/archiva/repository/snapshots/com/blah/data/RestWebServices/1.0-SNAPSHOT/RestWebServices-1.0-20121224.163825-2.war. Return code is: 401, ReasonPhrase:Unauthorized.
org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts: Could not transfer artifact com.blah.data:RestWebServices:war:1.0-20121224.163825-2 from/to archiva.apache.snapshots (http://10.31.31.64:8080/archiva/repository/snapshots): Failed to transfer file: http://10.31.31.64:8080/archiva/repository/snapshots/com/blah/data/RestWebServices/1.0-SNAPSHOT/RestWebServices-1.0-20121224.163825-2.war. Return code is: 401, ReasonPhrase:Unauthorized.
    at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:141)
    at hudson.maven.reporters.MavenArtifactRecord.deploy(MavenArtifactRecord.java:190)
    at hudson.maven.RedeployPublisher.perform(RedeployPublisher.java:173)
    at hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:187)
    at hudson.plugins.promoted_builds.Promotion$RunnerImpl.doRun(Promotion.java:141)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:586)
    at hudson.model.Run.execute(Run.java:1543)
    at hudson.model.Run.run(Run.java:1489)
    at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:106)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
Caused by: org.sonatype.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact com.blah.data:RestWebServices:war:1.0-20121224.163825-2 from/to archiva.apache.snapshots (http://10.31.31.64:8080/archiva/repository/snapshots): Failed to transfer file: http://10.31.31.64:8080/archiva/repository/snapshots/com/blah/data/RestWebServices/1.0-SNAPSHOT/RestWebServices-1.0-20121224.163825-2.war. Return code is: 401, ReasonPhrase:Unauthorized.
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:280)
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:211)
    at org.sonatype.aether.impl.internal.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:443)
    at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:137)
    ... 10 more
Caused by: org.sonatype.aether.transfer.ArtifactTransferException: Could not transfer artifact com.blah.data:RestWebServices:war:1.0-20121224.163825-2 from/to archiva.apache.snapshots (http://10.31.31.64:8080/archiva/repository/snapshots): Failed to transfer file: http://10.31.31.64:8080/archiva/repository/snapshots/com/blah/data/RestWebServices/1.0-SNAPSHOT/RestWebServices-1.0-20121224.163825-2.war. Return code is: 401, ReasonPhrase:Unauthorized.
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:951)
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:941)
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:837)
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.put(WagonRepositoryConnector.java:467)
    at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:274)
    ... 13 more
Caused by: org.apache.maven.wagon.TransferFailedException: Failed to transfer file: http://10.31.31.64:8080/archiva/repository/snapshots/com/blah/data/RestWebServices/1.0-SNAPSHOT/RestWebServices-1.0-20121224.163825-2.war. Return code is: 401, ReasonPhrase:Unauthorized.
    at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:613)
    at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:509)
    at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:490)
    at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:470)
    at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:811)
    ... 15 more

我在settings.xml 文件中有凭据:

<server>
      <id>snapshots</id>
      <username>deployment</username>
      <password>deployment</password>
    </server>

不知道为什么这突然不再适用于 1.494。我逐渐降级到 1.491,但它仍然发生。非常令人沮丧。

maven jenkins maven-plugin archiva
6个回答
14
投票

您已经通过降级证明了这不是纯粹的 Jenkins 问题。由于密码位于 settings.xml 中,请尝试从 Jenkins

mvn help:effective-settings
中运行它。这将为您提供运行时的具体设置以及密码是否在其中。

另请尝试检查

<id>snapshots</id>
<username>deployment</username>
的拼写。我今天刚刚在某个地方遇到了这个错误,用户是
releases
而不是
release
并且 maven 给出了 forbidden 错误


3
投票

我建议安装 Config File Provider 插件,它提供了一个很好的 GUI 来编辑配置文件的内容(例如 Maven 设置文件)

配置构建时,使用“-s”选项告诉 Maven 使用以下配置文件之一:

mvn -s $MY_PROJECTS_MAVEN_SETTINGS ???

这种方法的优点是,您可以确定构建正在使用您的设置,而不是它可能从文件系统中删除的一些随机文件。第二个好处是每个项目现在可以轻松拥有自己特定的 Maven 设置(例如每个项目很可能有不同的凭据)。


2
投票

我想出了如何解决这个问题,但我仍然不知道它是如何发生的。

我在 Archiva 中创建了第三个用户,并将其设置为用户在第一次登录时无需更改密码。然后我用该新用户更新了 Jenkins 中的 settings.xml。

现在可以使用了。

我仍然不知道为什么它停止与原始用户合作。

感谢大家的帮助。


0
投票

感谢奥吉跟进您的解决方案。我刚刚遇到了同样的症状,并通过您的新用户修复克服了。

更多信息: 通过删除旧用户并使用完全相同的用户名和密码创建新用户,我能够使旧用户名和密码正常工作。 (尽管我一路上尝试了使用相同/不同密码的新用户)。

关于原因... 我没什么想法。我们在与 UberSVN 相同的机器上运行 Archiva,并且我们的 Jenkins 作为插件位于 UberSVN 中。没有对其中任何一个进行升级。然而,对服务器上的各个目录进行了许多所有权更改,尽管我看不出这些是原因,因为解决方案只是创建一个新用户。

再次感谢您的帖子。


0
投票

在重新创建我的 Archiva 存储库后,我错过了为部署用户提供角色

RepositoryManager
。添加角色后,解决了上传工件时的401问题。

请参阅Archiva 用户指南


0
投票

我遇到了同样的问题,根据向服务台报告的 Jenkins 问题,您的帐户也可能存在一些问题(基础设施问题)。

验证 https://www.jenkins.io/doc/developer/publishing/releasing-manually/ 如果您发现 Jenkins 帐户有奇怪的情况,请尝试 https://github.com/jenkins-infra/helpdesk

© www.soinside.com 2019 - 2024. All rights reserved.