Maven,多个Web模块共享控制器,jsp,样式,脚本

时间:2013-02-04 13:30:25

标签: maven spring-mvc

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,......)。

2 个答案:

答案 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等......