2

我正在构建一个模块化的 Web 应用程序,它有一些 Spring 组件打包在一个 jar 依赖项(不同的模块)中。这个 jar 还包含一些 JSP 资源,例如:

- 模块
     + src/main/resources/META-INF/resources/module/*.jsp

现在我想在我的应用程序中使用以下结构覆盖特定的 JSP。

- 应用程序
     + src/main/resources/META-INF/resources/module/menu.jsp

使用tomcat7:run它运行应用程序时,有时会显示被覆盖的menu.jsp内容,但任何后续运行都会以旧版本结束。

跑步tomcat7:run-war更有希望。大多数运行都会显示新的 menu.jsp。但是当将应用程序部署到另一个 Tomcat 7 实例时,旧菜单再次可见。

menu.jsp 包含使用pageContext.include("/module/menu.jsp");,由自定义标记调用。

如何使这种资源覆盖更可靠?我完全一无所知,因为它似乎是随机工作的。我希望有人可以在这里有所启发。


不确定这是否相关,但为了能够使用组件扫描,我需要使用以下插件配置解压缩 jar 类。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack</id>
            <phase>process-resources</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <overWriteIfNewer>false</overWriteIfNewer>
                <artifactItems>
                    <artifactItem>
                        <groupId>my.company</groupId>
                        <artifactId>my-dependency</artifactId>
                        <version>1.0-SNAPSHOT</version>
                        <type>jar</type>
                        <outputDirectory>${project.build.directory}/classes</outputDirectory>
                        <includes>**/*.class</includes>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>
4

1 回答 1

2

在拉了很多头发之后,我意识到我犯了一个非常简单的错误。我现在搬家了

- 应用程序
     + src/main/resources/META-INF/resources/module/menu.jsp

到地点

- 应用程序
     + src/main/webapp/module/menu.jsp

一切都按预期进行。

于 2014-06-14T14:28:24.687 回答