Maven 中的工件描述符到底是啥?
Posted
技术标签:
【中文标题】Maven 中的工件描述符到底是啥?【英文标题】:What exactly is the artifact descriptor in Maven?Maven 中的工件描述符到底是什么? 【发布时间】:2017-06-09 08:53:43 【问题描述】:我最近遇到了一些 Maven 依赖项的问题并遇到了错误:“无法读取工件描述符...”。
我的问题不是关于错误,而是关于工件描述符本身。我想知道实际的问题是什么或者是什么造成了问题,但我并没有真正找到关于什么是工件描述符的解释,所以我想知道是否有人可以帮助我。
【问题讨论】:
【参考方案1】:换句话说,它是 POM。 POM 是描述 an artifact 的 Maven 特定文件。
Maven 3.3.9 在幕后使用 Eclipse Aether(它已作为 Maven Resolver API 的一部分并入 Maven 3.5.0 本身),它提供了 ArtifactDescriptorReader
类,解释:
提供有关与传递依赖解析相关的工件的信息。每个工件都应有一个随附的工件描述符,其中列出了工件的直接依赖关系。
其唯一的readArtifactDescriptor
方法的Javadoc是:
获取有关工件的信息,例如其直接依赖项和潜在的重定位。
因此,当您遇到类似于“无法读取工件描述符...”的错误时,这意味着 POM could not be read, or could not be resolved.通常,它源于下载的 POM 损坏、代理 Internet 访问以及未正确配置 Maven 等网络问题。
【讨论】:
以上是关于Maven 中的工件描述符到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Selenium - Maven 依赖项 - 无法读取工件描述符
找不到依赖项 'com.h2database:h2:1.4.200',无法读取 com.h2database:h2:jar 的工件描述符