占位符${project.version}
如何从父节点解析托管属性?我期望它是全局解析的,所以当父节点具有版本2时,${project.version}
也将被解析为版本2。
在parent pom中,我有:
<groupId>my.group</groupId>
<artifactId>parent</artifactId>
<version>2</version>
<packaging>pom</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>dep</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
在child中我使用
<parent>
<groupId>my.group</groupId>
<artifactId>parent</artifactId>
<version>2</version>
</parent>
<version>1</version>
<artifactId>child</artifactId>
但是用的是 这是预期行为吗?我使用maven 3.0.4 my.group.dep.1.jar
,而不是my.group.dep.2.jar
。因此占位符被解析为使用管理的依赖项的项目的版本,而不是那些定义依赖项的项目的版本。
您必须在child中跳过<version>
标记,但保留<parent><version> ... </parent>
标记。
http://maven.apache.org/guides/introduction/introduction-to-the-pom.html Project_Inheritance
需要注意的一个因素是,这些变量是在如上所述的继承。这意味着如果一个父项目使用一个变量,那么它的定义在子进程中,而不是父进程中,将是最终使用的。