Maven 无法使用 gitlab 解析依赖项

时间:2021-06-10 16:01:02

标签: java maven gitlab

我需要使用 maven 解决依赖关系但是它给出了一个错误。我正在使用 GitLab 将工件存储在包注册表下。

下面是 POM.XML 文件

<repositories>
  <repository>
    <id>gitlab-maven</id>
    <url>https://code.xyz.com/api/v4/projects/17/packages/maven</url>
  </repository>
</repositories>

<distributionManagement>
  <repository>
    <id>gitlab-maven</id>
    <url>https://code.xyz.com/api/v4/projects/17/packages/maven</url>
  </repository>

  <snapshotRepository>
    <id>gitlab-maven</id>
    <url>https://code.xyz.com/api/v4/projects/17/packages/maven</url>
  </snapshotRepository>
</distributionManagement>

当我在 maven 命令下运行时,出现以下错误:

mvn dependency:get -Dartifact=com.xyz:common:1.0.0.0

错误如下:

[INFO] --- maven-dependency-plugin:3.1.2:get (default-cli) @ sweta-test ---
[INFO] Resolving com.xyz:common:jar:1.0.0.0 with transitive dependencies
Downloading from gitlab-maven: https://code.xyz.com/api/v4/projects/17/packages/maven/com/xyz/common/1.0.0.0/common-1.0.0.0.pom
Downloading from central: https://repo.maven.apache.org/maven2/com/xyz/common/1.0.0.0/common-1.0.0.0.pom
[WARNING] The POM for com.xyz:common:jar:1.0.0.0 is missing, no dependency information available
Downloading from gitlab-maven: https://code.xyz.com/api/v4/projects/17/packages/maven/com/xyz/common/1.0.0.0/common-1.0.0.0.jar
Downloading from central: https://repo.maven.apache.org/maven2/com/xyz/common/1.0.0.0/common-1.0.0.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  6.136 s
[INFO] Finished at: 2021-06-10T21:10:20+05:30
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:3.1.2:get (default-cli) on project sweta-test: Couldn't download artifact: org.eclipse.aether.resolution.DependencyResolutionException: Could not find artifact com.xyz:common:jar:1.0.0.0 in gitlab-maven (https://code.xyz.com/api/v4/projects/17/packages/maven) -> [Help 1]

有人可以帮我解决缺失的部分吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,无法找到依赖项,因为 Maven 客户端未通过 gitlab-repository 进行身份验证。为了解决这个问题,需要follow these steps。出于安全原因,建议不要将任何令牌推送到(公共)托管存储库,而是可以使用环境变量。快速教程可以found here

根据我的经验,Could not find artifact 还可能有其他一些原因。所有要点都或多或少也适用于 gradle(或任何拉动工件/容器的东西,例如 docker)

  1. 该工件确实不存在,可能拼写错误,或者存储库中根本不存在所需的版本。
  2. 网络端有安全措施阻止您访问工件。可能是防火墙或 DNS 查找失败(可能是 hosts 文件中缺少条目)。