我可以确认 Maven 3.x{maven.build.timestamp}
现在正在“工作”。显然,他们解决了这个问题。不再需要额外properties
的解决方法。
但是,请注意您的“过滤”插件(maven-resources-plugin)是最新的。它需要相对较新,因此如果mvn help:effective-pom
显示旧版本(例如:2.6),请将其撞到较新的版本,为我修复它,例如 3.x:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<properties><timestamp>...
不再需要解决方法...
这也澄清了为什么它在 IntelliJ 中工作而不是在命令行中工作。IntelliJ 可能使用他们自己的“修改/内部”maven 常量,所以它在那里工作,但不是来自 maven 命令行。
另请注意,如果您向 pom 添加过滤资源目录,您可能还需要“重新添加”默认目录,它会丢失,例如:
<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>
注意如果你使用 spring boot 作为你的父母,你必须使用 @maven.build.timestamp@代替。另请注意,如果您使用的是 Spring Boot META-INF/build-info.properties
,则可以选择由spring-boot-maven-plugin
您可以读取BuildProperties
的文件创建一个文件(为了方便阅读,Spring 提供了一个bean)。