Posso confermare che Maven 3.x {maven.build.timestamp}
"funziona" ora. A quanto pare hanno aggirato il problema. Non è più properties
necessaria 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-pom
mostra 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.properties
che è facoltativamente creato da spring-boot-maven-plugin
che puoi leggere (spring fornisce un BuildProperties
bean per comodità di leggerlo).
target/${project}
cartella, ma nella mia configurazione attuale Tomcat non sta usando questa cartella ...