亲爱的stackoverflow社区
我遇到了maven 3项目的问题。基本上我有一个父Pom X,一个孩子Pom Y和Y Pom中的模块Z. POM Y和模块Z打包编译并存储在我的本地maven存储库中。 Z指向具有在父Pom X中定义的变量的父版本。因此,使用在Parent Pom X中定义的正确版本号编译并安装正常
现在我的问题:如果我在POM B(也是父Pom X的子节点)中使用Z作为依赖关系,并且在Parent Pom X中定义了版本变量,它会失败,因为模块Z在maven期间不解析版本变量建立。
错误: 无法读取Z的工件描述符:jar:someProjectVersion:找不到Y:pom:$ {someProjectVersionVariable}
更新:这是(简化的)poms:
父Pom:
<groupId>someProject</groupId>
<artifactId>someProject-parent</artifactId>
<version>5.3.3-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<child.version>5.3.3-SNAPSHOT</child.version>
</properties>
Child Y POM
<parent>
<groupId>someProject</groupId>
<artifactId>someProject-parent</artifactId>
<version>5.3.3-SNAPSHOT</version>
<relativePath>../someProject-parent/pom.xml</relativePath>
</parent>
<modules>
<module>moduleZ</module>
</module>
</modules>
<artifactId>someProject-Child</artifactId>
<name>someProject Child Name</name>
<version>${child.version}</version>
<packaging>pom</packaging>
模块Z POM:
<parent>
<groupId>someProject</groupId>
<artifactId>someProject-child</artifactId>
<version>${child.version}</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>someProjectModule</artifactId>
<packaging>jar</packaging>
<name>Module Z</name>
Child Bs POM:
<parent>
<groupId>someProject</groupId>
<artifactId>someProject-parent</artifactId>
<version>5.3.3-SNAPSHOT</version>
<relativePath>../someProject-parent/pom.xml</relativePath>
</parent>
<artifactId>someProject-Child-B</artifactId>
<name>someProject Child Name B</name>
<version>${child.version}</version>
<packaging>jar</packaging>
<dependency>
<groupId>someProject</groupId>
<artifactId>someProjectModule</artifactId>
<version>${child.version}</version>
<type>jar</type>
</dependency>
现在构建Child Y没问题,没有错误 建立儿童B导致:
Failed to read artifact descriptor for someProjectModule:jar:5.3.3-SNAPSHOT: Failure to find someProject-Child:pom:${child.version}