发布到 gitlab artifactory 时出现 401 未经 Maven 授权

Nan*_*yan 6 artifactory maven gitlab

我在尝试在私有 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>
Run Code Online (Sandbox Code Playgroud)

我也尝试过将其更改为

    <servers>
        <server>
            <id>gitlab-maven</id>
            <username>username</username>
            <password>pass</password>
        </server>
    </servers>            
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。这是我的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>
Run Code Online (Sandbox Code Playgroud)

我有什么遗漏的吗?先感谢您。

Nan*_*yan 11

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

  • 查了又查,没想到这个名字不可能是随意的。多谢。 (2认同)

小智 5

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