【发布时间】:2021-08-27 16:07:24
【问题描述】:
我需要使用 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]
有人可以帮我补上缺失的部分吗?
【问题讨论】:
-
Maven 是否已通过身份验证以从 GitLab 获取工件? docs.gitlab.com/ee/user/packages/maven_repository/…
-
它可能是一个私有存储库吗?
-
@thinkgruen 感谢您抽出宝贵时间。我错过了对 Maven 进行身份验证以从 GitLab 获取工件。它现在正在工作!再次感谢!我很想知道存储库标签和分发管理标签之间的区别。另外,您如何确定这是一个 Maven 身份验证问题?
-
@Sweta Sharma 我更像是一个 Gradle 用户,但我相信存储库是用来阅读的(所以要构建你的依赖项),分发管理负责部署你自己的工件。至于我是如何识别它的:在使用存储库时,这种事情总是会发生。根据我的经验,资源确实不存在(例如拼写错误),或者资源没有 DNS 条目(内部网络),或者身份验证失败。我认为前两个在这里不太可能。如果你愿意,我可以再次发布我的初始消息作为答案,而不是评论。
-
@thinkgruen 感谢您分享您的知识。是的,请添加它作为答案!再次感谢!