是否可以将 2 web.xml 与 Maven 覆盖合并

Is it possible to merge 2 web.xml with Maven overlay

我在 war 项目中定义了一个 Web 应用程序 'A'。 我创建了另一个 Web 应用程序 'B',它导入了带有覆盖层的 'A' 的全部内容。

应用程序 'B' 的文件 web.xml 与应用程序 'A' 相同,除了额外的侦听器。 因此 B 的 web.xml 包含大量与 A.

重复的内容

问题是: 是否可以告诉 maven-war-plugin 合并 A 和 B 的 web.xml,而不是用 B 的 web.xml 替换 A 的 web.xml?

在你的情况下——额外的听众——有一个简单的解决方案。 如果你的应用是Servlet 3.0或更高版本,你可以注册B监听器注解:

@WebListener
public class BListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("Started BListener");
    }

如果B的影响比extra listener更复杂,可以考虑web-fragment(需要Servlet 3.0)