java - 为什么不使用 maven-war-plugin 将 key 与 "WEB-INF/classes/META-INF/MANIFEST.MF"合并?

标签 java maven jakarta-ee jboss maven-war-plugin

我正在构建一个应用程序,然后在 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” key 并处理缓存内容。

会发生什么?

相反,会在 myproject.war/META-INF/MANIFEST.MF 中创建 MANIFEST.MF,并更新值,并在 WEB-INF 中创建> 位置只有 MANIFEST.MF 的副本,没有更新任何 key 。

为什么WEB-INF/classes/META-INF/MANIFEST.MF没有通过maven-war-plugin更新?

最佳答案

(我发现了,这是我对maven如何处理src/main/resources和 list 文件的无知)

Maven 在 META-INF/ 中创建一个正确的 MANIFEST.MF 文件,并将其用作 list 的默认约定路径,无需创建另一个文件在 src/main/resources 文件夹中,默认应该位于根目录中。

如果您从src/main/resources中删除MANIFEST(它将被复制到WEB-INF/classes/META-INF/MANIFEST.MF),您将只有一个,并且能够使用以下方式从应用程序访问 META-INF/MANIFEST.MF:

request.getServletContext().getResourceAsStream( "/META-INF/MANIFEST.MF" );

关于java - 为什么不使用 maven-war-plugin 将 key 与 "WEB-INF/classes/META-INF/MANIFEST.MF"合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27406143/

相关文章:

java - 错误的服务配置文件,或构造 Processor 对象时抛出的异常

rest - REST 服务中的 EJB 返回空指针异常

java - 根据关键字拆分字符串

java - 如何复制 "ant run"以使用 appclient 执行 Glassfish ACC 客户端

Spring 3.1.0.RC1 - 哪个 Maven 存储库?

java - 为什么正确导入后仍无法解析注释?

java - 用户按用户名查询不返回结果

java - Spring Security 自定义登录页面不起作用

java - 如何从 Assets 文件夹创建文件对象?

java - 从 RecyclerView 中删除项目会导致项目重复