Aujourd'hui j'ai vu ça dans un pom.xml maven :
<properties>
<maven.build.timestamp.format>dd/MM/yyyy HH:mm</maven.build.timestamp.format>
<project.build.date>${maven.build.timestamp}</project.build.date>
</properties>
Il semble que jusqu'à maven 2.x, il existait un bug faisant échouer le remplacement de la chaîne ${maven.build.timestamp}
lors du filtering de ressources. La parade consistait alors à créer une nouvelle property avec cette valeur.
Le problème semble avoir été corrigé depuis maven 3.x . Il faut simplement s'assurer que la version du maven-resources-plugin est en 3.x aussi.
Je ne voyais pas trop l'intérêt d'une notation qui se rapproche beaucoup de la fonction printf
en C. En effet, il existe deux manières d'écrire un message avec slf4j :
#La manière classique
logger.debug("The new entry is "+entry+".");
#Et cette autre façon
logger.debug("The new entry is {}.", entry);
En fait, la deuxième façon est exactement similaire à la première, à un détail près : quand le log est désactivé, cette ligne consommera 30 fois moins de ressources que la ligne de code classique, car la chaîne de caractères n'est évaluée que si le logger est activé.
Pour info, on peut l'utiliser avec n'importe quel nombre de variables :
logger.debug("Value {} was inserted between {} and {}.", newVal, below, above);