当前位置: 首页 > 面试题库 >

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

翟泰
2023-03-14
问题内容

问题:

即使我从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

    • install或相同compile

深入:

    <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:jaxrs-code-generator:jar:2.0.0的POM,没有可用的依赖项信息

问题不是jar,而是缺少的pom.xml。
pom.xml列出了该jar所需的依赖关系,Maven将在构建和整个应用程序打包期间将其拉出。 因此,您可能真的需要它。

注意,其他Maven依赖项当然可能会出现此问题,并且解决该问题的思路始终相同。

除了一些相关信息外,Mule网站的文档也很好。

怎么解决 ?

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

谷歌搜索工件ID,组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)清理单个Maven项目的解决方法:在pom中添加存储库声明。

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

<?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声明依赖关系是无处不在的。因此,您必须确定自己是否工件需要依赖项。



 类似资料:
  • 我正在使用Gradle构建一个Android库项目,并将其作为AAR部署到maven存储库中。 该库有一些依赖项,应该包含在POM中 在中没有POM文件,只有工件 使用会生成POM文件,但它不包含任何依赖项 有什么想法吗?难道这就是不支持吗? Gradle2.2和Android Gradle插件1.1.0 第一种方法: 我也尝试了它,但没有将其包装在中 第二种方法: 更新 问题的根本原因是这个项目

  • 我试图在NetBeans中构建一个Spring Maven OSGI应用程序。 产品版本:NetBeans IDE 8.0.2(Build 201411181905) Java:1.8.0_60;Java HotSpot(TM)客户端VM 25.60-b23运行时:Java(TM)SE运行时环境1.8.0_60-b27 在我添加Spring OSGI依赖项之前,它工作得很好: 堆栈跟踪:

  • 问题内容: 尝试使用带有Java 1.7的全新安装的Apache Maven 3.1.0将Java库添加到本地Maven存储库。这是添加Java存档文件的方式: 这创建了以下目录结构: 该项目的文件引用了从属项目(上面的树),如下所示: 问题 运行后,返回以下错误(在Pastebin上的完整日志): 该文档指出了可能存在的许多问题,但是似乎没有一个适用。 主意 根据文档,我尝试了以下操作: 将默认

  • 我正在为我的项目使用Gradle,昨天我在构建项目时遇到了问题,因为https://plugins.gradle.org不起作用。那么有没有办法克隆依赖项

  • 如上所述,我对maven有一个问题。在我当前的eclipse项目中,我使用maven进行依赖性管理,直到现在,它仍然运行良好。 该项目不再有效,并声明: 如果我检查文件夹,就会发现一些文件与jar同名,但以jar结尾。最后更新。 我尝试了maven clean和maven update,但没有成功。我的pom中的线条。xml标记为红色,表示: 这是我的pom的内容。xml: 这一块是一个有标记的块

  • 我所处的环境是,可以将同名jar文件的多个版本发布到本地Nexus安装。这些jar文件始终命名为XYZ-SNAPSHOT。罐子我们的持续集成系统需要始终获取最新版本,因此我们的自动构建当前包含以下内容,以消除持续集成机器上的完整本地回购: mvn依赖项:清除本地存储库 这将强制在每个构建上下载所有依赖项,这将花费很长时间。是否有某种方法可以将“includes”标志与通配符一起使用。我可以这样假设