2014-06-14 25 views
1

我正在構建一個模塊化的Web應用程序,該應用程序將一些Spring組件包裝在jar依賴項(不同的模塊)中。這個jar文件中還含有像一些JSP資源:在jar中覆蓋JSP文件META-INF/resources不可預知

 
- 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");,它由自定義標記調用。

我該如何使這個壓倒一切的資源更可靠?我完全無能爲力,因爲它似乎隨機工作。我希望有人能夠在這裏闡明一些看法。


不知道這是否是相關的,但要能夠使用組件掃描我需要用下面的插件配置來解壓縮罐類。

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

回答

2

經過大量的頭髮拉動,我意識到我犯了一個非常簡單的錯誤。我現在已經搬到

 
- App 
    + src/main/resources/META-INF/resources/module/menu.jsp 

的位置

 
- App 
    + src/main/webapp/module/menu.jsp 

,一切工作像預期。