Maven资源过滤未替换属性

4

这是我的配置文件:

version = ${maven.build.timestamp}

这是我的pom.xml文件的样子:
<properties>
    <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
<build>
    <plugins>
    ...
    </plugins>
    <resources>
        <resource>
            <directory>${project.basedir}/src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

这是我的目录结构:

.
├── pom.xml
├── src
│   └── main
│       ├── java
│       │   └── ...
│       ├── resources
│       │   └── application.properties

但是当我执行mvn clean install并打开target/classes/application.properties文件时,它的内容仍然是相同的:version = ${maven.build.timestamp}。为什么属性没有被正确替换?

1
顺便说一下,你可以把src/main/resources放在那里。 - jamierocks
1个回答

3

这是Maven已知的问题(请查看此处)。 最简单的解决方法是在POM文件中重新定义此属性:

<properties>
    <maven.build.timestamp>${maven.build.timestamp}</maven.build.timestamp>
</properties>

虽然这可能会在像Eclipse这样的IDE中生成错误,但它仍然可以作为Maven构建工具正常工作。或者,您可以使用自己的名称重新定义此属性以避免IDE警告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接