2010-12-16 51 views
1

我有一個名爲views的maven模塊,其中包含一個.jsp文件\ Calendar.jsp。我有另一個名爲core的maven模塊,它依賴於views模塊。 views模塊的封裝類型是jar,而core模塊的封裝類型是war。如何刪除覆蓋處理後的.jar文件

我已配置overlay將.jsp文件從views.jar複製到WEB-INF \ views文件夾(core.war)。

<configuration> 
     <overlays> 
      <overlay> 
       <groupId>org.opensource</groupId> 
       <artifactId>views</artifactId> 
       <type>jar</type> 
       <includes> 
        <include>**/*.jsp</include> 
       </includes> 
       <targetPath>WEB-INF/views</targetPath> 
      </overlay> 
     </overlays> 
</configuration> 

overlay配置工作正常,它views.jar .jsp文件複製到WEB-INF \ views文件夾(的core.war)。

但問題是,它不會從views.jar中刪除這些.jsp文件。所以,我的core.war結尾有重複的.jsp文件(WEB-INF/views文件夾中的一個副本和views.jar中的另一個副本)。結果core.war的大小急劇增加。 (該.jsp文件這是在views.jar是多餘的,因爲他們不會Web應用程序的執行期間使用)

所以,問題是: - 如何配置overlay剪切 +粘貼操作,而不是複製 +粘貼操作。如果這不能使用overlay完成,是否有任何其他(maven friendly)解決方案?

回答

1

Maven喜歡避免篡改已經安裝在本地或遠程存儲庫中的相關工件。我確信這種情況下你將會在這裏找到來自戰爭模塊的疊加功能的任何解決方案。

還有另一種方法可以解決這個問題,那就是退後一步,再次查看你的視圖模塊。你真正需要做的是用views模塊創建兩個jar,一個包含所有的類,另一個只包含JSP文件並用分類器保存這個工件。您可能必須使用assembly plugin來完成此操作。在Core模塊中,使用分類器獲取JSP工件,然後使用它來覆蓋模塊的戰爭創建。