Ответ Томаса Марти - шаг в правильном направлении, но есть более простой подход, который не требует фиктивной декларации <scm>
в POM. Используйте buildnumber-maven-plugin
, но используйте цель create-timestamp
. Документация не ясна; вот как выглядит получить дату в формате YYYY-MM-DD
и поместить ее в свойство build.date
:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create-timestamp</goal>
</goals>
</execution>
</executions>
<configuration>
<timestampFormat>yyyy-MM-dd</timestampFormat>
<timestampPropertyName>build.date</timestampPropertyName>
</configuration>
</plugin>
Из коробки это не будет работать в Eclipse с m2e, поэтому вам придется добавить следующее в раздел POM <build>
:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<versionRange>[1.2,)</versionRange>
<goals>
<goal>create-timestamp</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
Это говорит m2e, что вы хотите, чтобы он работал и запускал плагин при сборке в Eclipse.
Теперь, когда вы строите внутри или снаружи Eclipse, метка времени генерируется правильно и работает с фильтрацией ресурсов!
Жаль, что такая простая функция должна быть такой сложной ...