问题:
即使我从Maven资源库中复制了依赖项,依赖项也不会下载。
当我将鼠标悬停在Eclipse中的依赖项时,它会发出警告:“item
”。
当我尝试'inner
或Maven Missing artifact org.raml:jaxrs-code-generator:jar:2.0.0
时,它会发出警告:“mvn install
”。
尝试:
将jar下载到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
Maven Repository中的依赖存在(版本也正确)。
使用Eclipse EE Neon 4.6.3,Apache Maven 3.3.9,Java 1.8.0_121。
compile
文件夹中没有 <dependency>
<groupId>org.raml</groupId>
<artifactId>jaxrs-code-generator</artifactId>
<version>2.0.0</version>
</dependency>
。
我不使用本地或其他任何其他存储库。
答案 0 :(得分:11)
仔细阅读警告信息:
org.raml的POM:jaxrs-code-generator:jar:2.0.0缺失,没有 可用的依赖性信息
问题不是jar,而是丢失的pom.xml pom.xml列出了Maven在构建期间以及整个应用程序打包过程中提取的此jar所需的依赖项。 所以,你可能真的需要它。
请注意,其他Maven依赖项当然可能会出现此问题,并且要解决的问题始终相同。
除了与。相关的一些信息之外,The Mule website非常清楚
1)快速解决方法:在互联网上查找工件的pom.xml
通过Google搜索工件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
无处可去。因此,您必须确定工件是否需要依赖项。
答案 1 :(得分:4)
我最近有一个类似的问题。就我而言:
我从一些不太受欢迎的Maven存储库中下载了一个工件
此回购在今年消失了
即使我的本地存储库中有此工件及其pom.xml,现在构建也会失败
解决方法:
在您的本地仓库中删除 .remote.repositories 文件。现在,项目开始构建。
答案 2 :(得分:2)
您需要将外部存储库添加到您的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>
答案 3 :(得分:1)
这是我的解决方案,可能会有所帮助 我使用IntelliJ IDE。文件->设置-> Maven->导入 将导入程序的JDK更改为1.8(您可以更改为更低,更高)
答案 4 :(得分:1)
问题不在于 jar 文件。 Maven 无法获取正确的元数据。
删除 _maven.repositories 或 _remote.repositories(其中一个文件将在那里)文件并重新构建。文件位于 .m2/repository/path/to/your/repo/
答案 5 :(得分:0)
就我而言,我使用的是Jade,而我使用的是HTTP存储库URL。将网址更改为HTTPS对我有用。
答案 6 :(得分:0)
在我的情况下,原因是因为远程回购工件(非中央)在.pom
文件中具有来自Maven Central的依赖关系,而在mvn
的旧版本中(早于3.6.0) )。因此,它尝试检查远程仓库.pom
中提到的Maven Central工件,以查找我添加到依赖项中的特定工件,并在幕后面对Maven Central http访问问题(我相信与此处所述相同) :Maven dependencies are failing with a 501 error-这是默认情况下使用https访问Maven Central并禁止http访问)。
使用更新的Maven(从3.1到3.6.0)使其使用https来检查远程存储库的.pom
文件中提到的Maven Central存储库依赖关系,而我不再面对这个问题。
答案 7 :(得分:0)
如果POM缺少警告是关于项目的自身模块的,则原因是您试图从子模块目录中错误地进行构建。您需要从项目的根目录运行build and install命令。