La réponse de Thomas Marti est un pas dans la bonne direction, mais il existe une approche plus simple qui ne nécessite pas de mannequin. <scm>
dans le POM. Utilisez l'option buildnumber-maven-plugin
mais utilisez le create-timestamp
but. La documentation n'est pas claire ; voici à quoi ressemble l'introduction d'une date YYYY-MM-DD
et le mettre dans le build.date
propriété :
<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>
En l'état, cela ne fonctionnera pas dans Eclipse avec m2e, vous devrez donc ajouter ce qui suit dans le POM <build>
section :
<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>
Cela indique à m2e que vous voulez qu'il aille de l'avant et exécute le plugin lors de la construction dans Eclipse.
Maintenant, lorsque vous construisez à l'intérieur ou à l'extérieur d'Eclipse, l'horodatage est correctement généré et fonctionne avec le filtrage des ressources !
C'est une honte qu'une fonctionnalité si simple soit si difficile...