Maven3.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>
注意:親としてスプリングブートを使用している場合は、代わりに@maven.build.timestamp@を使用する必要があります。また、Spring Bootを使用しMETA-INF/build-info.properties
ている場合は、によってオプションで作成されたファイルがあり、それを読み取るspring-boot-maven-plugin
ことができます(springは、読み取りに便利なBeanを提供します)。BuildProperties