发布到 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的主要内容,如果未能解决你的问题,请参考以下文章
使用 Passport 进行 Laravel API 身份验证导致 401(未经授权)