如何将子项目中的源包包含到主项目中的 web.xml

how to include source packages in a sub-project to the web.xml in the main project

我在网上搜索了我的问题,但很多答案都与 Spring MVC 有关,这些答案不符合我的预期。我正在使用 Maven,我想使用普通 java 而不是 Spring 等任何框架

我正在尝试构建一个 java 动态 Web 应用程序项目,我将该项目分成 SubProject(子项目名称)和 MainProject(主项目名称)(实际上是主项目由 5 个子项目组成,但这与我的问题无关,所以我简化了案例)。我想将 SubProject 视为 MainProject 的库,所有项目都可以使用 Maven 构建。 SubProject 不是动态 Web 应用程序项目,因此它没有部署描述符 web.xml,MainProject 是动态 Web 应用程序项目,具有 web.xml.

现在假设我在 SubProject 的包 com.my.package 中写了一个 java 过滤器 MyFilter.java 并且我需要在 MainProject 的 web.xml 中配置它以便 MyFilter可以用于某些 url 模式。出现问题是因为我不知道如何将SubProject中的源码包包含到web.xml中的MainProject中。

我知道如何在 Spring MVC 中通过在 spring.xml 中包含以下配置来做到这一点: <context:component-scan base-package="com.my.package" />
其中 com.my.package 是 SubProject 中的源包。 web.xml 中还包括:
<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/spring.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>

因为我不想使用 Spring 框架,所以我正在寻找一些方法来配置我的 web.xml,类似于我在 spring.xml 中所做的。有没有人知道如何在 java Web 应用程序的主项目的子项目中包含源包(和 类)?

如果您执行以下操作:

  • 配置 MainProject 以构建 WAR: pom.xml
  • 中的 <packaging>war</packaging>
  • 配置子项目以构建 JAR:<packaging>jar</packaging> in pom.xml
  • 将 SubProject 添加为 MainProject 的依赖项:
<dependencies>
  <dependency>
    <groupId>groupId.of.SubProject</groupId>
    <artifactId>SubProject</artifactId>
    <version>x.x.x</version>
  </dependency>
</dependencies>

您可以在 MainProject 的 web.xml:

中使用来自 SubProject 的过滤器
<filter>  
    <filter-name>MyFilter</filter-name>
    <filter-class>com.my.package.MyFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>MyFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>