1

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

4

2 回答 2

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

于 2013-02-04T15:07:07.183 回答
1

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

它适用于 jsp-s、js-s 等...

于 2015-05-19T19:22:08.727 回答