1

我有一个名为views包含一个.jsp 文件\Calendar.jsp 的maven 模块。我有另一个名为 的 maven 模块core,它依赖于viewsmodule. module的打包类型views是jar,module的打包类型core是war。

我已配置overlay将 .jsp 文件从views.jarWEB-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配置工作正常,它确实将.jsp 文件从WEB-INF\views 文件夹(的)复制views.jarcore.war

但问题是它不会从 .jsp 文件中删除这些 .jsp 文件views.jar。因此,我core.war最终得到了重复的 .jsp 文件(一份在 WEB-INF/views 文件夹中,另一份在 .jsp 中views.jar)。结果,规模core.war急剧增加。(其中的 .jsp 文件views.jar是多余的,因为它们不会在 webapp 的执行过程中使用。)

所以,问题是:-如何配置overlay剪切+粘贴操作而不是复制+粘贴操作。如果使用 无法做到这一点overlay,是否还有其他(Maven 友好)解决方案?

4

1 回答 1

1

Maven 喜欢避免篡改已经安装在本地或远程存储库中的相关工件。我敢肯定,您会在这里找到来自战争模块覆盖功能的任何解决方案的情况。

还有另一种方法可以解决这个问题,那就是退后一步,再次查看您的视图模块。您真正需要做的是使用视图模块创建两个 jar,一个包含所有类,另一个仅包含 JSP 文件并使用分类器保存该工件。您可能必须使用程序集插件来完成此操作。在核心模块中,使用分类器获取 JSP 工件,然后使用它覆盖模块的战争创建。

于 2010-12-16T15:27:45.227 回答