Je peux confirmer que Maven 3.x {maven.build.timestamp}
"fonctionne" maintenant. Ils ont contourné le problème, apparemment. Aucune properties
solution 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-pom
montre 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.properties
qui est éventuellement créé par le spring-boot-maven-plugin
que vous pouvez lire (spring fournit un BuildProperties
bean pour faciliter sa lecture).
target/${project}
dossier, mais dans ma configuration actuelle, Tomcat n'utilise pas ce dossier ...