Problem:

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

当我徘徊在日食中的依赖时,它警告说:"Maven Missing artifact org.raml:jaxrs-code-generator:jar:2.0.0"。

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

Tried:

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

    • 当我install或者compile它似乎忽略了它。
  • 跑步mvn -U

    • 与与之相同install或者compile

In-depth:

    <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文件夹。

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

答案

仔细阅读警告消息:

org.raml的pom:jaxrs-code-generator:jar:2.0.0,没有可用的依赖性信息

问题不是罐子,而是丢失的pom.xml。
pom.xml列出了Maven在构建过程中将拉动的此罐子所需的依赖项,并总体上包装了您的应用程序。So, you may really need it.

请注意,当然,其他Maven依赖性以及解决始终相同的想法可能会发生这个问题。

mule网站文件非常好,除了一些与之相关的信息之外。


怎么解决 ?

1) Quick workaround : looking for in the internet the pom.xml of the artifact

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

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

2) Clean workaround for a single Maven project : adding the repository declaration in your 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) Clean workaround for any Maven projects : add the repository declaration in your settings.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声明依赖关系无处可寻。因此,您必须确定工件是否需要依赖性。

来自: stackoverflow.com