springmvc-Maven,多web模块共享控制器,jsp,样式,脚本



Maven可以将公共控制器、jsp和其他资源共享到web模块。

结构

web1(包装罐)

--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…)

为什么不用所有共享资源创建一个额外的项目?您可以在所有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>

在你的网络应用程序项目中,你可以将该项目用作依赖项:

<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的东西。我认为这些例子应该为你指明正确的方向。

看看这个答案:https://stackoverflow.com/a/14143954/600007,及其参考:http://maven.apache.org/plugins/maven-war-plugin/overlays.html

它将适用于jsp-s、js-s等…

最新更新