Spring MVC Maven模块

假设我想拥有3个maven模块:

  • 登录
  • Web应用程序

我希望在两个模块中都有Java类和jsp文件(login和webapp)。 我的解决方法部分工作,它构建一个WAR文件,网页呈现,看起来很好,但当我尝试在webapp模块中使用API​​(登录模块的接口)时 – 无法找到类。 我认为POM文件有问题。

POM几乎是相同的,登录和webapp poms之间的主要区别 – webapp与登录有依赖关系。

来自webapp模块的POM源:

  4.0.0 webapp mano-webapp war  1.6 3.1.1.RELEASE 1.6.10 1.6.6     org.springframework spring-context ${org.springframework-version}    commons-logging commons-logging     org.springframework spring-webmvc ${org.springframework-version}    org.aspectj aspectjrt ${org.aspectj-version}    org.slf4j slf4j-api ${org.slf4j-version}   org.slf4j jcl-over-slf4j ${org.slf4j-version} runtime   org.slf4j slf4j-log4j12 ${org.slf4j-version} runtime   log4j log4j 1.2.15   javax.mail mail   javax.jms jms   com.sun.jdmk jmxtools   com.sun.jmx jmxri   runtime    javax.inject javax.inject 1    javax.servlet servlet-api 2.5 provided   javax.servlet.jsp jsp-api 2.1 provided   javax.servlet jstl 1.2    junit junit 4.7 test   com.beta.test mod-login 0.0.1-SNAPSHOT war      maven-eclipse-plugin 2.9   org.springframework.ide.eclipse.core.springnature   org.springframework.ide.eclipse.core.springbuilder  true true    org.apache.maven.plugins maven-compiler-plugin 2.5.1  1.6 1.6 -Xlint:all true true    org.codehaus.mojo exec-maven-plugin 1.2.1  org.test.int1.Main      com.beta.test parent 0.0.1-SNAPSHOT ../parent   

根据你所描述的,你应该考虑maven叠加。

WAR文件的叠加层只是一个Maven项目,它使用另一个项目的WAR输出作为依赖项,而不是项目的JAR。 构建覆盖项目时,底层项目的WAR文件将被展开,并且覆盖项目中的文件将添加到其中。 如果覆盖项目的文件具有与基础WAR中的文件相同的路径和名称,则它将替换它。

您将以与现在相同的方式包含来自一个模块的war,并覆盖当前模块中的文件(类或静态资源)。 一个解释更多的博客 ,以及分步指南 。