Maven可以与Web模块共享通用控制器,jsp和其他资源。
结构
web1(包装jar)
--main
--java
--controller
MyControllerToShared with @Controller annotation
--resources
--webapp
--scripts
javascripts files
--styles
css files
--WEB-INF
--views
jsp to share
pom.xml
web2(打包战争)
Classic web app structure with dependency of web1.jar
我的web2应用程序正常工作但没有为web1模块中的URI定义的HTTP请求找到映射。我使用注释@Controller和@RequestMapping。我在servlet.xml中定义了:
<context:component-scan base-package="controller" />
<mvc:annotation-driven/>
如何在不同的Web模块之间共享控制器和资源? 最后,我需要有3个带有公共内容的web应用程序(错误处理程序,jsp的错误,样式,js,......)。
答案 0 :(得分:1)
为什么不用所有共享资源创建额外的项目?您可以在所有Web应用程序中重复使用它,只需将共享文件包含在pom.xml中作为依赖项。
您可以从包含共享资源的其他项目开始:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>nl.connexys</groupId>
<artifactId>shared</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Shared resources</name>
</project>
在您的webapp项目中,您可以将该项目用作依赖项:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>nl.connexys</groupId>
<artifactId>webapp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Webservice endpoints</name>
<dependencies>
<dependency>
<groupId>nl.connexys</groupId>
<artifactId>shared</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
但这都是Maven非常基本的东西。我认为这些例子应该指出你正确的方向。
答案 1 :(得分:1)
看看这个答案: https://stackoverflow.com/a/14143954/600007 ,以及参考:http://maven.apache.org/plugins/maven-war-plugin/overlays.html
它适用于jsp-s,js-s等......