【问题标题】:Maven resource filtering not replacing propertyMaven资源过滤不替换属性
【发布时间】:2015-06-10 05:22:54
【问题描述】:

这是我的属性文件:

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}

为什么属性没有被正确替换?

【问题讨论】:

  • 顺便放src/main/resources就可以了

标签: java maven maven-resources-plugin


【解决方案1】:

这是 Maven 中的一个已知问题 (see here)。 最简单的解决方法是在您的 POM 中重新定义此属性:

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

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

【讨论】:

    猜你喜欢
    • 2016-08-16
    • 1970-01-01
    • 2013-12-21
    • 2011-01-19
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2013-04-11
    相关资源
    最近更新 更多