我遇到了一个Maven项目构建问题。 我的项目结构如下
my-message
|
---my-message-api
|
--- my-message-provider
下面是pom.xml代码
my-message.pom
<parent>
<groupId>com.xiaofeng.my</groupId>
<artifactId>my-parent</artifactId>
<version>0.0.1</version>
</parent>
<artifactId>my-message</artifactId>
<version>${my-message.version}</version>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<properties>
<my-message.version>0.0.1-SNAPSHOT</my-message.version>
</properties>
<modules>
<module>my-message-api</module>
<module>my-message-provider</module>
</modules>
my-message-api.pom
<parent>
<groupId>com.msh.my</groupId>
<artifactId>my-message</artifactId>
<version>${my-message.version}</version>
<relativePath>../pom.xml</relativePath>
</parent>
my-message-provider.pom
<parent>
<groupId>com.msh.my</groupId>
<artifactId>my-message</artifactId>
<version>${my-message.version}</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>my-message-provider</artifactId>
<dependencies>
<dependency>
<groupId>com.msh.my</groupId>
<artifactId>my-message-api</artifactId>
<version>${my-message.version}</version>
</dependency>
</dependencies>
Maven安装输出
Failed to execute goal on project my-message-provider: Could not resolve dependencies for project
com.msh.my:my-message-provider:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at com.msh.my:my-message-api:jar:0.0.1-SNAPSHOT:
Failed to read artifact descriptor for com.msh.my:my-message-api:jar:0.0.1-SNAPSHOT: Could not find artifact com.msh.my:my-message:pom:${my-message.version}
in nexus (http://nexus_url:8081/nexus/content/groups/public)
为什么Maven无法解析父版本中的表达式?请帮助我
答案 0 :(得分:1)
因为您不能在模块的父级规范中使用变量。 Maven必须能够解析整个模型结构,然后才能解析变量。