“POM 用于 ...缺少,没有可用的依赖项信息“,即使它存在于 Maven 存储库中

2022-08-31 13:32:51

问题:

即使我从 Maven 存储库复制了依赖项,也不会下载依赖项。

当我将鼠标悬停在 Eclipse 中的依赖项上时,它会警告:“”。Maven Missing artifact org.raml:jaxrs-code-generator:jar:2.0.0

当我尝试或它警告:“”。mvn installmvn compile[WARNING] The POM for org.raml:jaxrs-code-generator:jar:2.0.0 is missing, no dependency information available

试:

  • jar 下载到文件夹中,然后在编辑器中刷新。~/.m2/repository/org/raml/jaxrs-code-generator/2.0.0

    • 当我或它似乎忽略它。installcompile
  • 运行。mvn -U

    • 与 或 相同。installcompile

深入:

    <dependency>
        <groupId>org.raml</groupId>
        <artifactId>jaxrs-code-generator</artifactId>
        <version>2.0.0</version>
    </dependency>
  • 依赖项存在于 Maven 存储库中(版本也是正确的)。

  • 使用Eclipse EE Neon 4.6.3,Apache Maven 3.3.9,Java 1.8.0_121。

  • 我的文件夹中没有。settings.xml~/.m2

  • 我不使用任何其他存储库,本地或其他方式。


答案 1

仔细阅读警告消息:

缺少 org.raml:jaxrs-code-generator:jar:2.0.0 的 POM,没有可用的依赖项信息

问题不在于罐子,而在于缺少的绒球.xml。
pom.xml列出了 Maven 将在构建和整体打包应用程序期间拉取此 jar 所需的依赖项。因此,您可能真的需要它。

请注意,对于其他Maven依赖项,当然可能会出现此问题,并且解决此问题的想法始终是相同的。

骡子网站记录得很好,除了一些相关的信息。


如何解决?

1)快速解决方法:在互联网上寻找神器的pom.xml

谷歌搜索工件ID,组ID及其版本给出了通常有趣的结果:maven存储库链接以下载它。
在依赖的情况下,您可以从Maven mule存储库下载:org.raml:jaxrs-code-generator:jar:2.0.0pom.xml

https://repository.mulesoft.org/nexus/content/repositories/releases/org/raml/jaxrs-code-generator/2.0.0/

2)单个Maven项目的干净解决方法:在pom中添加存储库声明。

在您的情况下,添加Maven mule存储库:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    ...
    <repositories>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Repository</name>
            <url>http://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>mulesoft-snapshots</id>
            <name>MuleSoft Snapshot Repository</name>
            <url>http://repository.mulesoft.org/snapshots/</url>
            <layout>default</layout>
        </repository>
    </repositories>
    ...
</project>

3)任何Maven项目的干净解决方法:在您的设置中添加存储库声明.xml

 <profile> 
   <repositories>
    ...
    <repository>
      <id>mulesoft-releases</id>
      <name>MuleSoft Repository</name>
      <url>http://repository.mulesoft.org/releases/</url>
      <layout>default</layout>
    </repository>
    <repository>
      <id>mulesoft-snapshots</id>
      <name>MuleSoft Snapshot Repository</name>
      <url>http://repository.mulesoft.org/snapshots/</url>
      <layout>default</layout>
    </repository>
     ...
  </repositories>     
</profile>

请注意,在极少数情况下,声明依赖项是无处可去的。因此,您必须确定自己工件是否需要依赖项。pom.xml


答案 2

我最近遇到了类似的问题。在我的情况下:

  1. 我从一些不太受欢迎的Maven存储库下载了一个工件

  2. 此存储库在今年被解散

  3. 现在构建失败了,即使我在本地存储库中有这个工件及其 pom.xml

解决方法:

删除此项目所在的本地存储库中的_remote.存储库文件。现在,项目将生成。


推荐