我正在构建一个模块化Web应用程序,它在jar依赖项(不同模块)中包含一些Spring组件。这个jar还包含一些JSP资源,如:
- Module + src/main/resources/META-INF/resources/module/*.jsp
现在我想在我的应用程序中使用以下结构覆盖特定的JSP。
- App + 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>
答案 0 :(得分:2)
经过大量的拔毛后,我意识到自己犯了一个非常简单的错误。我现在搬家了
- App + src/main/resources/META-INF/resources/module/menu.jsp
到位置
- App + src/main/webapp/module/menu.jsp
一切都像预期的那样。