有人知道将 2 个 war 模块合并到一个大 war 文件中的好方法吗?
也许通过一些自定义的 maven 插件,或者 maven-war-plugin 配置?
谢谢
最佳答案
没那么简单。
基本问题是每个 WAR 在容器中都是它自己的命名空间,因此如果 WAR A 覆盖 WAR B 中的某些内容(index.jsp 就是一个很好的例子),将它们简单地混合在一起很容易产生冲突。
谨慎的做法是获取每个 WAR 并将它们放入新 WAR 的子树中,但即使如此,您仍然有需要解析的“全局”工件,尤其是 web.xml 的内容,但是还有诸如属性文件之类的东西,这些文件往往是“每个 WAR 一个”,例如 log4j.properties。
最后,可移植 WAR 不会将其 WAR 名称“硬编码”到它们的链接中,而是依赖于从请求中获取上下文路径。但是,如果您将两个 WAR 合并到一个主 WAR 下,则上下文路径仅指向应用程序的根目录,而不是每个单独 WAR 的特定子目录。因此,您需要查找所有这些引用,或路径被硬编码的引用,并更正它们。
因此,确实没有自动合并 WAR 的方法。
关于maven-2 - 从 2 个 war 项目中创建一个大型 war 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2524058/