Maven 中缺少工件错误

Posted

技术标签:

【中文标题】Maven 中缺少工件错误【英文标题】:Missing artifact error in Maven 【发布时间】:2011-02-25 23:28:48 【问题描述】:

我在 Maven 构建期间收到一个缺少工件的错误,因为其中一个依赖项使用版本的属性声明它是父工件。现在属性本身在父 pom 中声明,我的项目构建失败,出现此错误:

[ERROR] Failed to execute goal on project abc: Unable to get dependency
information for xyz:pqr:jar:SNAPSHOT: Failed to process POM for 
xyz:pqr:jar:SNAPSHOT: Non-resolvable parent POM xyz:pqr-parent:$someversion
for xyz:pqr:$someversion: Failed to resolve POM for 
xyz:pqr-parent:$someversion due to Missing:
----------
1) xyz:pqr-parent:pom:$someversion
----------
1 required artifact is missing.

for artifact:
xyz:pqr-parent:pom:$someversion

我已验证工件位于存储库中的正确位置。

有没有办法指定依赖pom中使用的someversion属性的值? 如果没有,应该如何更改依赖pom来解决错误?

【问题讨论】:

【参考方案1】:

我在 Maven 构建期间收到一个缺少工件的错误,因为其中一个依赖项使用版本的属性声明它是父工件。现在属性本身在父 pom 中声明,我的项目构建失败,出现此错误 (...)

这是先有鸡还是先有蛋的问题:您无法从父级获取要使用的父级版本。

有没有办法指定依赖 pom 中使用的 someversion 属性的值?

AFAIK,这是不可能的,project.parent.version 中的属性不会被替换。您可能需要检查MNG-624(并投票)和相关问题。

如果不是,应该如何更改依赖pom来解决错误?

在 project.parent.version 中使用“硬编码”版本。

【讨论】:

以上是关于Maven 中缺少工件错误的主要内容,如果未能解决你的问题,请参考以下文章

具有依赖关系的 pom.xml 中的错误(缺少工件...)

maven 安装文件“缺少工件”

JPA 容器地址簿缺少工件

Maven:POM.xml 中缺少工件 com.sun:tools:jar:1.6.0 编译时异常 [重复]

Maven:缺少工件 org.springframework:spring:jar:4.2.6

缺少工件 com.oracle.jdbc:ojdbc6:jar:11.2.0.3 构建成功仍然错误