从2个战争项目中创建一个大战争文件

时间:2010-03-26 14:41:59

标签: maven-2

任何人都知道将两个战争模块合并到一个大战争文件中的正确方法吗?

可能通过一些自定义maven插件或maven-war-plugin配置?

由于

2 个答案:

答案 0 :(得分:3)

这不是那么简单。

基本问题是每个WAR在容器中都是它自己的命名空间,因此如果WAR A覆盖WAR B中的某些东西,简单地将它们混合在一起就很容易产生冲突(index.jsp就是一个很好的例子)。

谨慎的做法是将每个WAR放入他们自己的新WAR子树中,但即使你仍然需要解决“全局”工件,特别是web.xml的内容,但是还有像属于“每个WAR一个”的属性文件,例如log4j.properties。

最后,便携式WAR不会将其名称“硬编码”到其链接中,而是依赖于从请求中获取上下文路径。但是,如果在主WAR下合并两个WAR,则上下文路径仅针对应用程序的根,而不是每个WAR的特定子目录。因此,您需要搜索所有这些引用或路径被硬编码的引用,并更正它们。

因此,实际上没有自动合并WAR的方法。

答案 1 :(得分:1)

maven Cargo插件可以merge WAR files,但我从未在测试环境之外使用过这种情况(我完全控制了我想要合并的内容)。

对于更简单的方案,您可以使用overlays

但这些解决方案都不会神奇地解决冲突。你必须做出一些选择。