0

アプリケーションを構築してから、MANIFEST.MF ファイルにいくつかのカスタム キーをマージしています。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.5</version>
  <configuration>
    <archive>
      <manifestEntries>
        <Build-Time>${maven.build.timestamp}</Build-Time>
        <Build-Revision>${buildNumber}</Build-Revision>
      </manifestEntries>
    </archive>
  </configuration>
</plugin>

私は 2 つのプロファイルを持っています。プロダクション プロファイルは次のリソース構成を使用します。

<resources>
    <resource>
        <!-- "all" is used for all profiles, "development" and "production" -->
        <directory>src/main/resources/all</directory>
    </resource>
    <resource>
        <!-- "prod" is just used for "production" -->
        <directory>src/main/resources/prod</directory>
    </resource>
</resources>

デフォルトの MANIFEST.MF は にありsrc/main/resources/all/META-INF/MANIFEST.MF、これをベースとして使用する必要があります。

私は何を期待していますか?

MANIFEST.MF はmyproject.war/WEB-INF/classes/META-INF/MANIFEST.MF、提供された値に従って更新された「Build-Time」と「Build-Revision」で利用できると期待しています。次に、実行時に MANIFEST.MF ファイルにアクセスして、「Build-Revision」キーを取得し、キャッシュを処理できるようになります。

代わりに何が起こりますか?

myproject.war/META-INF/MANIFEST.MF代わりに、値が更新された MANIFEST.MF が内部で作成され、WEB-INFキーが更新されていない MANIFEST.MF のコピーがその場所に存在します。

WEB-INF/classes/META-INF/MANIFEST.MF が maven-war-plugin で更新されないのはなぜですか?

4

1 に答える 1