2015-04-05 1 views
2

Вот подам свойства:Maven фильтрации ресурсов не заменяет свойство

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, conten ts от него все тот же: version = ${maven.build.timestamp}

Почему нет надлежащей замены собственности?

+0

Вы можете просто добавить src/main/resources кстати – jamierocks

ответ

2

Это известная проблема в Maven (see here). Простейшее обходной путь, чтобы переопределить это свойство в вашем POM:

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

Хотя это может генерировать ошибку в IDE, как Eclpise она по-прежнему работает как Maven сборки. В качестве альтернативы вы можете переопределить это свойство со своим именем, чтобы избежать предупреждений IDE.