使用 Maven 部署插件 (maven-deploy-plugin) 部署构件到 Artifactory 时,发生了权限错误(401 Unauthorized)

时间:2025-04-08 20:10:11

使用 Maven 部署插件 (maven-deploy-plugin) 部署构件到 Artifactory 时,发生了权限错误(401 Unauthorized):Failed to execute goal :maven-deploy-plugin:2.7:deploy (default-deploy) on project view-common: Failed to deploy artifacts: Could not transfer artifact :view-common:jar:1.1.3-20240702.024051-1 from/to snapshots (/libs-snapshots-local): Transfer failed for /libs-snapshots-local/com/jd/ad/view-common/1.1.3-SNAPSHOT/view-common-1.1.3-20240702. 401 Unauthorized -> [Help 1]

这个错误信息表明,在使用 Maven 部署插件 (maven-deploy-plugin) 部署构件到 Artifactory 时,发生了权限错误(401 Unauthorized)。这意味着你的 Maven 没有正确的凭据来访问 Artifactory 仓库。

以下是解决这个问题的一些步骤:

1. 检查

确保你的 Maven 文件中包含正确的服务器凭据。这个文件通常位于你的 Maven 安装目录的 conf 目录下,或者在用户的 .m2 目录下。添加或更新 servers 元素,确保包含正确的 Artifactory 仓库凭据。

<settings>
  <servers>
    <server>
      <id>snapshots</id>
      <username>your-username</username>
      <password>your-password</password>
    </server>
  </servers>
</settings>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

确保 <id> 元素的值与你在 中定义的仓库 ID 匹配。

2. 检查

确保你的 文件中正确配置了仓库信息。

<distributionManagement>
  <snapshotRepository>
    <id>snapshots</id>
    <url>/libs-snapshots-local</url>
  </snapshotRepository>
</distributionManagement>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3. 验证凭据

确保你提供的用户名和密码是正确的,并且有权限访问和部署到指定的 Artifactory 仓库。

4. 检查网络和防火墙

确保你的网络环境允许访问 Artifactory 服务器,并且没有防火墙或代理阻止请求。

5. 更新 Maven 插件版本

有时,使用较新的 Maven 部署插件版本可以解决一些兼容性问题。确保你的 中使用的是最新版本的 maven-deploy-plugin

<plugin>
  <groupId></groupId>
  <artifactId>maven-deploy-plugin</artifactId>
  <version>2.8.2</version> <!-- 或者最新版本 -->
</plugin>
  • 1
  • 2
  • 3
  • 4
  • 5

6. 检查 Artifactory 配置

确保 Artifactory 服务器上的仓库配置正确,并且允许从你的 IP 地址进行部署。

7. 测试凭据

你可以通过直接使用 curl 或 wget 测试你的凭据是否正确。例如:

curl -u your-username:your-password /libs-snapshots-local/com/jd/ad/view-common/1.1.3-SNAPSHOT/
  • 1

如果返回 401 Unauthorized,说明凭据有问题。

8. 清理和重试

有时,Maven 的本地缓存可能导致问题。你可以尝试清理本地仓库,然后重新构建和部署。

mvn clean install
mvn deploy
  • 1
  • 2

通过这些步骤,你应该能够找到并解决 401 Unauthorized 错误,成功部署你的构件到 Artifactory。