发布到 gitlab 工件时,401 未经授权从 maven

Posted

技术标签:

【中文标题】发布到 gitlab 工件时,401 未经授权从 maven【英文标题】:401 unauthorized from maven when publishing to gitlab artifactory 【发布时间】:2021-10-23 21:15:26 【问题描述】:

尝试在私有 gitlab 存储库中发布工件时遇到问题。我正在使用 Maven,并且我使用个人访问令牌进行了身份验证。当我运行 mvn deploy -s ~/.m2/settings.xml 时,我收到以下错误 Failed to deploy artifacts: Could not transfer artifact ... 401 Unauthorized

我的 settings.xml 文件如下所示。

<servers>
    <server>
      <id>gitlab-maven</id>
      <configuration>
        <httpHeaders>
          <property>
            <name>personal-token</name>
            <value>mytoken</value>
          </property>
        </httpHeaders>
      </configuration>
    </server>
  </servers>

我也试过改成

    <servers>
        <server>
            <id>gitlab-maven</id>
            <username>username</username>
            <password>pass</password>
        </server>
    </servers>            

但这并没有帮助。这是我的pom 发布部分

<repositories>
        <repository>
            <id>gitlab-maven</id>
            <url>https://gitlab.mycompany.com/api/v4/projects/92/packages/maven</url>
        </repository>
    </repositories>
    <distributionManagement>
        <repository>
            <id>gitlab-maven</id>
            <url>https://gitlab.mycompany.com/api/v4/projects/92/packages/maven</url>
        </repository>
        <snapshotRepository>
            <id>gitlab-maven</id>
            <url>https://gitlab.mycompany.com/api/v4/projects/92/packages/maven</url>
        </snapshotRepository>
    </distributionManagement>

我有什么遗漏的吗?提前谢谢你。

【问题讨论】:

【参考方案1】:

通过将设置文件中的属性更改为Private-Token 来解决此问题(我之前使用的是令牌的实际名称)

【讨论】:

上下搜索,我从来没有想过,这个名字不能是随机的。非常感谢。【参考方案2】:

我遇到了同样的问题,但原因不同。 我的想法(带有内置 maven 插件的 intellij)使用与我配置服务器的设置文件(C:\Users\YOUR_USER_NAME\.m2\settings.xml)不同的设置文件(在不同路径上安装本地 maven)。 要解决此问题,请转到:文件 -> 设置(在 Windows 上 Ctrl + Alt + s)-> 构建、执行、部署 -> 构建工具 -> Maven -> 用户设置文件。 选中“覆盖”复选框并指向正确的路径。 希望它可以节省某人的时间...

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于发布到 gitlab 工件时,401 未经授权从 maven的主要内容,如果未能解决你的问题,请参考以下文章

401 在 SharePoint 2007 中未经授权

从角度访问webapi时出现401未经授权的错误

使用 Passport 进行 Laravel API 身份验证导致 401(未经授权)

如果刷新(JWT)令牌未经授权(401响应),AngularJS重定向到登录

谷歌云存储:401 未经授权的错误

使用 AFNetworking 在 iOS 8 中登录时解析服务器提供未经授权的 (401)