Je peux confirmer qu'à partir de Maven 3.x {maven.build.timestamp}
est en train de "fonctionner". Ils travail contourné le problème, apparemment. Pas de supplément properties
plus besoin de solution de contournement.
Cependant, faites attention à ce que votre plugin de "filtrage" (maven-resources-plugin) soit à jour. Il doit être relativement récent, donc si mvn help:effective-pom
montre une ancienne version (ex : 2.6), passe à une version plus récente, ce qui a été fait pour moi, ex : 3.x :
<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 permis de comprendre, en quelque sorte, pourquoi cela fonctionnait dans IntelliJ mais pas en ligne de commande. IntelliJ utilise probablement ses propres constantes maven "modifiées/internes", de sorte que cela fonctionnait là, mais pas à partir de la ligne de commande maven.
Notez également que si vous ajoutez un répertoire de ressources de filtrage à votre pom, vous devrez peut-être aussi "ré-adhérer" le répertoire par défaut, il se perd, par exemple :
<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@. au lieu de . Notez également que si vous utilisez spring boot, il existe un fichier META-INF/build-info.properties
qui est facultativement créé par le spring-boot-maven-plugin
que vous pouvez lire (le ressort fournit un BuildProperties
pour en faciliter la lecture).