La réponse de Thomas Marti est un pas dans la bonne direction, mais il y a une approche plus simple qui ne nécessite pas une déclaration <scm>
factice dans le POM. Utilisez le buildnumber-maven-plugin
, mais utilisez l'objectif create-timestamp
.La documentation n'est pas claire. voici à quoi il ressemble d'obtenir une date au format YYYY-MM-DD
et le mettre dans la propriété 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>
Hors de la boîte cela ne fonctionnera pas dans Eclipse avec M2e, de sorte que vous devrez ajouter ce qui suit à l'intérieur de la section 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>
Cela indique M2e que vous voulez aller de l'avant et d'exécuter le plug-in lors de la construction au sein d'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!
Il est dommage que la fonctionnalité si simple doit être si difficile ...
et la date actuelle dans la propriété: $ {horodatage} Plus sur I a dû ajouter un mannequin –
jpprade
Désolé pour ma modification: il semble que '' soit utilisé par cet objectif pour formater '$ {buildNumber}' ... Très déroutant. Pour ceux qui veulent construire le numéro * et * la date de construction, vous devez avoir deux exécutions pour 'buildnumber-maven-plugin': une avec l'objectif' create' (et une configuration optionnelle), et une autre pour 'create-timestamp' objectif avec custom '' dans sa configuration. Le mélange des configurations ne fonctionne pas. –
Ok, je me sens un peu fictif, et sans chercher en ligne, quelqu'un pourrait-il me dire pourquoi je dois utiliser la syntaxe '{0, date, aaaa-MM-jj HH: mm: ss}' juste pour dire 'yyyy- MM-dd HH: mm: ss'? Qu'est-ce que ça veut dire? – reallynice