Mogę potwierdzić, że Maven 3.x {maven.build.timestamp}
działa teraz. Oni pracują arounded problemu, widocznie. Żadne dodatkowe properties
obejście nie jest już potrzebne.
Uważaj jednak, aby Twoja wtyczka filtrująca (maven-resources-plugin) była aktualna. Musi być stosunkowo nowy, więc jeśli mvn help:effective-pom
pokazuje starą wersję (np: 2.6), podbij ją na coś nowszego, naprawiłem to dla mnie, 3.x ex:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<properties><timestamp>...
obejście nie jest już wymagane ...
To również wyjaśniło, w pewnym sensie, dlaczego działa w IntelliJ, ale nie w linii poleceń. IntelliJ prawdopodobnie używa swoich własnych "zmodyfikowanych / wewnętrznych" stałych maven, więc tam działał, ale nie z wiersza poleceń mavena.
Zwróć też uwagę, że jeśli dodasz filtrowanie katalogu zasobów do swojego pom, może być konieczne „ponowne dodanie” katalogu domyślnego, zostanie on utracony, np.
<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, jeśli używasz spring boot jako swojego rodzica, musisz zamiast tego użyć @ maven.build.timestamp @ . Zauważ również, że jeśli używasz rozruchu sprężynowego, istnieje plik, META-INF/build-info.properties
który jest opcjonalnie tworzony przez ten spring-boot-maven-plugin
, który możesz przeczytać (wiosna zapewnia BuildProperties
fasolkę dla wygody czytania).
target/${project}
folderze, ale w mojej obecnej konfiguracji Tomcat nie używa tego folderu ...