risposta di Thomas Marti è un passo nella giusta direzione, ma c'è un approccio più semplice che non richiede una dichiarazione fittizia <scm>
nel POM. Utilizzare lo buildnumber-maven-plugin
, ma utilizzare l'obiettivo create-timestamp
.La documentazione non è chiara; ecco quello che sembra per ottenere una data in formato YYYY-MM-DD
e metterlo nella proprietà 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>
Fuori dalla scatola questo non funzionerà in Eclipse con M2E, quindi dovrete aggiungere la seguente all'interno della sezione 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>
Questo dice M2E che si vuole andare avanti ed eseguire il plugin quando si costruisce all'interno di Eclipse.
Ora quando si costruisce dentro o fuori Eclipse, il timestamp viene generato correttamente e funziona con il filtro delle risorse!
E 'un peccato che la funzionalità in modo semplice deve essere così difficile ...
fonte
2013-05-21 16:57:24
e la data corrente nella proprietà: $ {timestamp} Più sopra ho ha dovuto aggiungere un manichino –
jpprade
Ci scusiamo per la mia modifica: sembra che "" sia usato da questo obiettivo per formattare '$ {buildNumber}' ... Molto confuso. Per coloro che vogliono la build date * e * build date, è necessario avere due esecuzioni per 'buildnumber-maven-plugin': uno con' create' goal (e una configurazione opzionale per esso), e un altro per 'create-timestamp' obiettivo con personalizzato '' nella sua configurazione. Le configurazioni di missaggio non funzionano. –
Ok, mi sento un po 'fasullo, e senza una ricerca online qualcuno potrebbe dirmi perché devo usare la sintassi '{0, date, aaaa-MM-gg HH: mm: ss}' per dire semplicemente 'yyyy- MM-gg HH: mm: ss'? Cosa significa? – reallynice