Maven 3.x {maven.build.timestamp}
が「動作」していることを確認できました。彼らは問題を回避しているようです。追加のproperties
回避策はもう必要ありません。
ただし、「フィルタリング」プラグイン(maven-resources-plugin)が最新であることに注意してください。比較的新しいものである必要があるためmvn help:effective-pom
、古いバージョン(例:2.6)が表示された場合は、新しいバージョンにバンプし、修正してください(例:3.x ex)。
<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
可能なによって作成されたファイルがあることに注意してください(Springは、読み取りに便利なBeanを提供します)。BuildProperties
target/${project}
フォルダーでの置換は問題ありませんが、実際の構成では、Tomcatはこのフォルダーを使用していません...