“POM for …缺失,没有可用的依赖信息”,即使它存在于Maven Repository中

问题:

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

当我将鼠标hover在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相同。

深入:

   org.raml jaxrs-code-generator 2.0.0  
  • 依赖存在于Maven存储库中 (版本也是正确的)。

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

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

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

仔细阅读警告信息:

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

问题不是jar,而是丢失的pom.xml。
pom.xml列出了Maven在构建期间以及整个应用程序打包过程中提取的此jar所需的依赖项。 所以,你可能真的需要它。

请注意,这个问题当然可能发生在其他Maven依赖项中,并且要解决的想法始终是相同的。

Mule网站很好地记录了除了一些相关的信息。


怎么解决 ?

1)快速解决方法:在互联网上查找工件的pom.xml

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

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

2)清理单个Maven项目的变通方法:在pom中添加存储库声明。

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

   4.0.0 ...   mulesoft-releases MuleSoft Repository http://repository.mulesoft.org/releases/ default   mulesoft-snapshots MuleSoft Snapshot Repository http://repository.mulesoft.org/snapshots/ default   ...  

3)清除任何Maven项目的变通方法:在settings.xml添加存储库声明

    ...  mulesoft-releases MuleSoft Repository http://repository.mulesoft.org/releases/ default   mulesoft-snapshots MuleSoft Snapshot Repository http://repository.mulesoft.org/snapshots/ default  ...   

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

您需要将外部存储库添加到您的pom,因为这是使用Mulsoft-Release存储库而不是Maven Central

  ...   mulesoft-releases MuleSoft Repository http://repository.mulesoft.org/releases/ default   ...  

依赖

Apache Maven – 设置多个存储库