2010-12-16 56 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工件,然后使用它来覆盖模块的战争创建。