我的项目依赖于一些框架jar:
<groupId>my-compamy</groupId>
<artifactId>my-project</artifactId>
<version>1.0</version>
<dependency>
<groupId>my-company</groupId>
<artifactId>child-jar1</artifactId>
<version>2.0</version>
</dependency>
最近框架团队改变了他们的包装,在存储库中,他们把父pom(以前是分开的儿童罐)放在这样:
<properties>
<reivison>2.0</revision>
</properties>
<groupId>my-company</groupId>
<artifactId>framework-parent</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<modules>
<module>child-jar1</module>
</modules>
在孩子的jar1 pom:
<parent>
<artifactId>framework-parent</artifactId>
<groupId>my-company</groupId>
<version>${revision}</version> <!-- can find the value! -->
</parent>
<artifactId>child-jar1</artifactId>
<packaging>jar</packaging>
当我构建我的项目时,我收到如下错误消息:
...无法在我的公司收集依赖项:child-jar1:jar:2.0。
...导致:找不到framework-parent:pom $ {revision}
并且没有下载儿童罐子。
看起来它是子pom中的占位符导致问题:my-project无法解析依赖(chiild-jar1)的pom中的占位符值。尝试了多种方法来解决my-project方面的引用值但没有任何效果。这可以从我的项目方面解决而不改变任何依赖框架的设置吗?请帮忙。
有一种方法可以用具体的值替换palceholder:在框架父pom文件构建部分中添加flatten-maven-plugin(首先运行) - 这不会影响框架的功能,但必须在框架端完成。我把这个建议交给了框架所有者,他们接受了。有用。
感谢所有评论提供商!