相关疑难解决方法(0)

Maven:没有为pom的/ project/version标签进行属性替换?

http://maven.apache.org/pom.html#Properties表示属性"值可在POM内的任何位置访问".

这应该是" 在POM内的大多数地方都可以访问"吗?

我可以指定依赖的版本没有问题,如下所示:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>${junit.version}</version>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但是项目本身的版本如何:

<project xmlns="http://maven.apache.org/POM/4.0.0" ...>

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <version>${myversion}</version>

    <properties>
        <myversion>8</myversion>
    </properties>

    <modules>
        <module>alpha</module>
        <module>beta</module>
    </modules>
    ...
Run Code Online (Sandbox Code Playgroud)

如果我尝试这个<version>将不会取值8.这里我在pom中定义了$ {myversion}但是如果我在命令行中指定-Dmyversion = 8,情况似乎也是如此.

如果其中一个模块使用硬编码版本号指定其父级,如下所示:

<parent>
    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <version>8</version>
</parent>
Run Code Online (Sandbox Code Playgroud)

当我尝试构建然后当maven来看模块的pom时,它会说它无法找到版本8的给定父pom.

但是,如果我将父版本中的版本硬编码为8,而不是使用$ {myversion},那么一切正常.

所以在我看来,父pom的/ project/version标签不会发生属性替换.

是这种情况还是对我似乎看到的内容有其他解释?

问候,

/乔治

maven-2 properties substitution pom.xml

16
推荐指数
1
解决办法
2万
查看次数

标签 统计

maven-2 ×1

pom.xml ×1

properties ×1

substitution ×1