我在一个战争项目中定义了一个 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?
我在一个战争项目中定义了一个 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 的影响比额外的监听器更复杂,你可以考虑 web-fragment (需要 Servlet 3.0)