问题:
即使我从Maven存储库复制了依赖项,依赖项也不会下载。
当我将鼠标悬停在Eclipse中的依赖项时,它会发出警告:“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
”。
尝试:
~/.m2/repository/org/raml/jaxrs-code-generator/2.0.0
文件夹,然后在编辑器中刷新。
当我install
或compile
似乎忽略它。mvn -U
。
与install
或compile
相同。深入:
<dependency>
<groupId>org.raml</groupId>
<artifactId>jaxrs-code-generator</artifactId>
<version>2.0.0</version>
</dependency>
settings.xml
文件夹中没有~/.m2
。仔细阅读警告信息:
org.raml的pOM:jaxrs-code-generator:jar:2.0.0缺失,没有可用的依赖项信息
问题不是jar,而是丢失的pom.xml。 pom.xml列出了Maven在构建期间以及整个应用程序打包过程中提取的此jar所需的依赖项。所以,你可能真的需要它。
请注意,这个问题当然可能发生在其他Maven依赖项中,并且要解决的想法始终是相同的。
The Mule website文件非常清楚,除了一些相关的信息。
1)快速解决方法:在互联网上寻找工件的pom.xml
谷歌搜索工件ID,组ID及其版本通常提供有趣的结果:maven存储库链接下载它。
在org.raml:jaxrs-code-generator:jar:2.0.0
依赖的情况下,您可以从Maven mule存储库下载pom.xml
:
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项目的变通方法:在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
无处可去。因此,您必须确定工件是否需要依赖项。
您将需要将外部存储库添加到您的pom,因为这是使用Mulsoft-Release
存储库而不是Maven Central
<project>
...
<repositories>
<repository>
<id>mulesoft-releases</id>
<name>MuleSoft Repository</name>
<url>http://repository.mulesoft.org/releases/</url>
<layout>default</layout>
</repository>
</repositories>
...
</project>