我在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以解决错误?
答案 0 :(得分:4)
我在Maven构建期间遇到了一个缺失的工件错误,因为其中一个依赖项使用该版本的属性声明它的父工件。现在属性本身在父pom中声明,我的项目的构建失败,给出了这个错误(...)
这是鸡和蛋的问题:您无法从父级获取父级的版本。
有没有办法指定依赖pom中使用的someversion属性的值?
AFAIK,这是不可能的,project.parent.version中的属性不会被替换。您可能需要查看MNG-624(并对其进行投票)和相关问题。
如果没有,应该如何更改依赖pom以解决错误?
在project.parent.version中使用“硬编码”版本。