1. ホーム
  2. maven

[解決済み] リソースのフィルタリングのためにmaven.build.timestampにアクセスする方法

2022-09-18 02:50:10

質問

私は maven 3.0.4 を使用しており、ビルドタイムスタンプをアプリケーションからアクセスできるようにしたいと考えています。このために、私はプレースホルダーを .properties ファイルにプレースホルダーを置き、ビルド時に maven にフィルタリングさせています。これは ${project.version} , ${maven.build.timestamp} はフィルタリングで置換されません。

プロパティはビルド時に利用可能なようです - 私はそれを使ってアーティファクト名を変更できます。

<finalName>${project.artifactId}-${maven.build.timestamp}</finalName>

では、なぜリソースフィルタリングで利用できないのでしょうか?そして、さらに重要なことは、どうすればアクセスできるようになるのか、ということです。

どのように解決するのでしょうか?

私は発見した この記事 のためであると説明している。 のバグによって のバグのため、ビルドタイムスタンプがフィルタリングに伝搬されないことを説明しています。回避策は、タイムスタンプを別のプロパティでラップすることです。

<properties>
   <timestamp>${maven.build.timestamp}</timestamp>
   <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
</properties>

次にフィルタリングは

buildTimestamp=${timestamp}