Je peux confirmer que Maven 3.x {maven.build.timestamp}"fonctionne" maintenant. Ils ont contourné le problème, apparemment. Aucune propertiessolution de contournement supplémentaire n'est plus nécessaire.
Attention cependant votre plugin "filtering" (maven-resources-plugin) est à jour. Il doit être relativement nouveau, donc si mvn help:effective-pommontre une ancienne version (ex: 2.6), remplacez-la par quelque chose de plus récent, corrigez-le pour moi, 3.x ex:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<properties><timestamp>... la solution de contournement n'est plus nécessaire ...
Cela a également clarifié, en quelque sorte, pourquoi cela fonctionnait dans IntelliJ mais pas dans la ligne de commande. IntelliJ utilise probablement ses propres constantes maven "modifiées / internes", donc il fonctionnait là-bas, mais pas depuis la ligne de commande maven.
Notez également que si vous ajoutez un répertoire de ressources de filtrage à votre pom, vous devrez peut-être également "rajouter" le répertoire par défaut, il se perd, ex:
<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 si vous utilisez Spring Boot comme parent, vous devez utiliser @ maven.build.timestamp @ à la place . Notez également que si vous utilisez spring boot, il y a un fichier META-INF/build-info.propertiesqui est éventuellement créé par le spring-boot-maven-pluginque vous pouvez lire (spring fournit un BuildPropertiesbean pour faciliter sa lecture).
target/${project}dossier, mais dans ma configuration actuelle, Tomcat n'utilise pas ce dossier ...