Maven:无法读取构件描述符。

334

我希望有人能够帮助我解决一个困扰我的问题。

当我尝试从终端构建项目时,出现了以下错误:

Failed to read artifact descriptor for com.morrislgn.merchandising.common:test-data-utils:jar:0.3b-SNAPSHOT: Could not find artifact com.morrislgn.merchandising:merchandising:pom:0.3b-SNAPSHOT

这个common.test-data-utils的jar包是由另一个项目创建并在此项目和另一个项目之间共享(另一个项目也无法构建,但这是另一个问题)。

我能够顺利地构建 com.morrislgn.merchandising.common:test-data-utils,我可以在我的机器上的.m2本地仓库中看到它所做的条目。我还在Eclipse中重新索引了我的仓库。

我的项目的POM文件中有以下条目:

<dependency>
    <groupId>com.morrislgn.merchandising.common</groupId>
    <artifactId>test-data-utils</artifactId>
    <version>0.3b-SNAPSHOT</version>
</dependency>

这对我来说似乎是正确的 - 当在Eclipse中查看POM时,也没有报告任何错误。

有人能告诉我在这里我错过了什么或者做错了什么吗?


5
如果某人(例如我)因为Maven>3.8.1中的HTTP存储库而遇到了此错误,类似于maven-default-http-blocker(http://0.0.0.0/):Blocked mirror for repositories:,请查阅此链接:https://dev59.com/jlEG5IYBdhLWcg3wX731 - aksh1618
@aksh1618 谢谢。那是解决我的问题的方法。 - Shreehari
25个回答

1

我曾经遇到过类似的问题。在我的情况下,.m2/repositories文件夹中的testng版本损坏了,但是当我删除它并再次进行maven更新后,一切都正常了。


1

这对我很有帮助:

从IDE(在我的情况下是Red Hat CodeReady Studio,但@mavaddat-javid已经验证了VS Code 1.77.0)。

Windows -> 显示视图 -> 终端 -> 打开/添加本地终端

运行以下命令 >

$ cd /pom-file-path/

$ mvn -U clean install


0
我在eclipse中遇到了这个问题,mvn -U clean install没有起作用,但是右键点击项目并选择Maven->Update Project解决了这个问题。

0

我刚开始使用STS Eclipse,并第一次使用Maven。我设置的项目已经有了自己的settings.xml文件。如果是这种情况,您需要在运行配置中更新您的settings.xml文件。

  1. 右键单击pom.xml并选择“Run As” -> “Run Configurations…”

  2. 在“User settings”处单击文件按钮并添加settings.xml。

  3. 我认为这是针对您的项目特定的,但我的“Goals”设置为“clean install”,并且我勾选了“Skip Tests”。


0

我会回答这个问题,因为它是谷歌找到的第一个。在我的情况下,根本原因隐藏在问题的堆栈跟踪中:

    Failed to read artifact descriptor for jakarta.activation:jakarta.activation-api:jar:1.2.2
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:255)
    ...
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: jakarta.activation:jakarta.activation-api:pom:1.2.2 failed to transfer from https://nexus.akbankpreprod.com/repository/maven-public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of maven-public has elapsed or updates are forced. Original error: Could not transfer artifact jakarta.activation:jakarta.activation-api:pom:1.2.2 from/to maven-public (https://nexus.akbankpreprod.com/repository/maven-public/): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

“原始错误”部分显示我需要将我的Nexus服务器的安全证书添加到JRE信任存储中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接