Posso confermare che Maven 3.x {maven.build.timestamp}"funziona" ora. A quanto pare hanno aggirato il problema. Non è più propertiesnecessaria alcuna soluzione alternativa.
Tuttavia, fai attenzione che il tuo plugin di "filtraggio" (maven-resources-plugin) sia aggiornato. Deve essere relativamente nuovo, quindi se mvn help:effective-pommostra una vecchia versione (es: 2.6), spostalo su qualcosa di più nuovo, aggiustalo per me, 3.x es:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<properties><timestamp>... soluzione alternativa non è più necessaria ...
Questo ha anche chiarito, più o meno, perché funzionava in IntelliJ ma non nella riga di comando. IntelliJ probabilmente usa le proprie costanti Maven "modificate / interne", quindi funzionava lì, ma non dalla riga di comando Maven.
Nota anche se aggiungi una directory di risorse di filtraggio al tuo pom, potresti dover anche "aggiungere di nuovo" la directory predefinita, va persa, ad esempio:
<resource>
<directory>src/main/resources-filtered</directory> <!-- to get "maven.build.timestamp" into resource properties file -->
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory> <!-- apparently have to add this is you have the other... -->
</resource>
NB se si sta utilizzando avvio di primavera, come un genitore, è necessario utilizzare @ @ maven.build.timestamp invece . Nota anche se stai usando lo spring boot, c'è un file META-INF/build-info.propertiesche è facoltativamente creato da spring-boot-maven-pluginche puoi leggere (spring fornisce un BuildPropertiesbean per comodità di leggerlo).
target/${project}cartella, ma nella mia configurazione attuale Tomcat non sta usando questa cartella ...