Maven pom.xml中属性的调用层次结构

Maven pom.xml中属性的调用层次结构,maven,version,pom.xml,call-hierarchy,Maven,Version,Pom.xml,Call Hierarchy,我有一个带有多个嵌套项目的maven项目。它们都有相同的版本。直到现在,如果我想增加版本,我检查了所有pom.xml文件并更改了版本号 现在,我想将该版本外包给父pom.xml文件的properties标记。它适用于所有嵌套项目,但不适用于父pom本身 pom.xml中的属性的调用顺序是什么?我不能参考 父pom.xml文件中的项目版本 代码片段显示了父pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:

我有一个带有多个嵌套项目的maven项目。它们都有相同的版本。直到现在,如果我想增加版本,我检查了所有pom.xml文件并更改了版本号

现在,我想将该版本外包给父pom.xml文件的properties标记。它适用于所有嵌套项目,但不适用于父pom本身

pom.xml中的属性的调用顺序是什么?我不能参考 父pom.xml文件中的项目版本

代码片段显示了父pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <groupId>com.my.project</groupId>
    <artifactId>my.project</artifactId>
    <packaging>pom</packaging>
    <version>${projectVersion}</version>
    <properties>
        <projectVersion>1.0.0</projectVersion>
        ...
    </properties>
    <modules>
        <module>my.project.service</module>
        <module>my.project.db</module>
        ...
    </modules>

com.my.project
我的项目
聚甲醛
${projectVersion}
1.0.0
...
我的项目服务
my.project.db
...
我希望pom采用属性中定义的版本号。但它无法生成无效的引用格式错误

我希望pom采用属性中定义的版本号。 但它无法生成无效的引用格式错误

通过从父项目运行maven目标,maven首先在当前构建过程中绑定工件/组/版本,因此它使用此处定义的版本:
${projectVersion}

我无法在父pom.xml文件中引用项目版本

在这种情况下,您可以通过创建一个聚合器/多模块项目来“作弊”,该项目定义了一个未使用/伪造版本(例如,
1.0-not-used
),该版本的唯一模块是父pom。构建聚合器/多模块项目时,现在可以将要在父项目及其所有模块中使用的版本作为参数传递

作为旁注,要对一组项目使用中心版本,您应该使用将您从地狱版本管理中解放出来的

我希望pom采用属性中定义的版本号。 但它无法生成无效的引用格式错误

通过从父项目运行maven目标,maven首先在当前构建过程中绑定工件/组/版本,因此它使用此处定义的版本:
${projectVersion}

我无法在父pom.xml文件中引用项目版本

在这种情况下,您可以通过创建一个聚合器/多模块项目来“作弊”,该项目定义了一个未使用/伪造版本(例如,
1.0-not-used
),该版本的唯一模块是父pom。构建聚合器/多模块项目时,现在可以将要在父项目及其所有模块中使用的版本作为参数传递


作为旁注,要对一组项目使用中心版本,您应该使用将您从地狱版本管理中解放出来的

你可以通过版本maven插件而不是手动操作来实现这一点…如果你真的喜欢使用属性,这里是如何正确操作的指南:(严格阅读!)你可以通过版本maven插件而不是手动操作来实现这一点…如果你真的喜欢使用属性,这里是如何正确操作的指南:(严格阅读!)