【问题标题】:Packaging WAR in another WAR (Maven)在另一个 WAR 中打包 WAR (Maven)
【发布时间】:2019-07-25 04:09:38
【问题描述】:

我目前正在尝试将应用程序迁移到 Maven。从以前开始,该应用程序是 Web 项目(带有 JSP 和 JS)和其他“普通”项目的混合体。我很难将所有这些模块打包成一个。对于 web 项目,我选择打包为 WAR,其他我选择 JAR。现在我正在尝试制作一个主 WAR 文件,我最终可以将其部署到 Tomcat。但是据我所知,不可能将 WAR 打包到另一个 WAR 中。而且我还读到将包装制作为 JAR 是可行的。我只是想知道第一个选项完全不可能吗?如果 JAR 和 WAR 是唯一的选择,那么我将所有 Web 内容(JSP、JS、图像等)放在哪里。目前,WAR+JAR 组合创建的最终 WAR 文件只有 3KB 大,看起来几乎不真实。我知道我错过了一些东西,但不知道去哪里找。该应用程序大约有 14 年的历史,因此并不真正符合我能想到的任何框架。 EAR 也不是一个选项,因为应用程序必须部署在 Tomcat 上。我希望 TomEE 是一个选择! :(

【问题讨论】:

  • 你不能将一个war文件打包成一个war文件,但是可以使用maven war插件覆盖一个war文件:maven.apache.org/plugins/maven-war-plugin/overlays.html - 这可能对你有用
  • 什么是“主战争文件”?整个事情应该是一个单一的war文件,你的JAR项目应该是那个war项目的依赖项。
  • @DaveNewton 我的意思是,我有大约 20 个的 40 个奇怪的项目被打包为 WAR,其余为 JAR,所以想将它们全部打包在一个 WAR 文件中。这就是我所说的可以部署到 Tomcat 的“主 WAR”。
  • 它们是网络应用程序吗?还是非网络应用程序?如果是非网络应用,请正确打包。如果是 Web 应用程序,这并不是 WAR 文件的真正工作方式——但您始终可以以任意方式将它们分开并重新打包。这是一个不断更新的应用程序,包括它的依赖项吗?它现在如何处理它的依赖管理?将其迁移到 Maven 的动机是什么?
  • 我能够通过覆盖物到达某个地方。我会跑得更远一点,看看它的去向。但此刻卡在了别的东西上。所以我必须先弄清楚这一点。如果覆盖不起作用,我会回来的。动机是应用程序将与另一个应用程序合并。

标签: java maven war


【解决方案1】:

您所有的“JSP、JS、图像等”都应该放在一个 WAR 文件中。我有一个打包在 WAR 文件中的应用程序,它在托管的 Tomcat 中运行所有这些。您可以将整个应用程序打包为 Java EE,但桌面应用程序除外。

【讨论】:

    【解决方案2】:

    只需将您的 20 场战争部署到 Tomcat 上即可。无需将它们捆绑到另一个工件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      相关资源
      最近更新 更多