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,并覆盖当前模块中的文件(类或静态资源)。 一个解释更多的博客 ,以及分步指南 。