Ich kann bestätigen, dass Maven 3.x {maven.build.timestamp}
jetzt "funktioniert". Sie arbeiten arounded das Problem offenbar. Es ist keine zusätzliche properties
Problemumgehung mehr erforderlich.
Seien Sie jedoch vorsichtig, dass Ihr "Filter" -Plugin (Maven-Resources-Plugin) auf dem neuesten Stand ist. Es muss relativ neu sein. Wenn also mvn help:effective-pom
eine alte Version (z. B. 2.6) angezeigt wird, stoßen Sie sie auf etwas Neueres, beheben Sie sie für mich. 3.x z.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<properties><timestamp>...
Problemumgehung ist nicht mehr erforderlich ...
Dies klärte auch irgendwie auf, warum es in IntelliJ funktionierte, aber nicht in der Kommandozeile. IntelliJ verwendet wahrscheinlich ihre eigenen "modifizierten / internen" Maven-Konstanten, also funktionierte es dort, aber nicht über die Maven-Befehlszeile.
Beachten Sie auch, dass Sie beim Hinzufügen eines Filterressourcenverzeichnisses zu Ihrem POM möglicherweise auch das Standardverzeichnis "erneut hinzufügen" müssen. Es geht verloren, z.
<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>
Hinweis: Wenn Sie Spring Boot als übergeordnetes Element verwenden, müssen Sie stattdessen @ maven.build.timestamp @ verwenden . Beachten Sie auch, dass bei Verwendung von Spring Boot eine Datei META-INF/build-info.properties
optional von der Datei erstellt wird, die spring-boot-maven-plugin
Sie lesen können (Spring bietet eine BuildProperties
Bean zum bequemen Lesen).
target/${project}
Ordner in Ordnung, aber in meiner tatsächlichen Konfiguration verwendet Tomcat diesen Ordner nicht ...