在一个大项目中拆分maven工程时,很有可能会把js、css、jsp等文件放在不同的工程里(根据业务模块划分)。因为如果都集中在一个maven webapp里,那么这个maven webapp会太大,而且在业务上也比较分散
但是这些持有js、css、jsp的maven工程,如果packaging设置为jar是不合适的,因为外围要读取内部的这些文件就会很困难。在这种场景下,一个很自然的想法就是打成war包,然后用某种方式将多个war包归并起来,得到最终的war包
这就是overlays发挥作用的地方
以下举一个例子:
这里有2个web工程,一个是task-sla-web,一个是task-web-dist,packaging类型都是war,目录结构如下:
下面是task-sla-web的pom文件:
<modelVersion>4.0.0</modelVersion>
<groupId>com.huawei.inoc.wfm.task</groupId>
<artifactId>task-sla-web</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>task-sla-web</name>
该工程就是打成一个war包,但是这个war是无法运行的,而是稍后用来合并的。(其中放了 一个空的web.xml,因为maven-war-plugin的package goal有强制要求)
下面是task-web-dist的pom文件:
<modelVersion>4.0.0</modelVersion>
<groupId>com.huawei.inoc.wfm.task</groupId>
<artifactId>task-web-dist</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>task-web-dist</name>
<!-- 合并多个war -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<overlays>
<overlay>
<groupId>com.huawei.inoc.wfm.task</groupId>
<artifactId>task-sla-web</artifactId>
</overlay>
</overlays>
</configuration>
</plugin>
<!-- 配置依赖 -->
<dependencies>
<dependency>
<groupId>com.huawei.inoc.wfm.task</groupId>
<artifactId>task-sla-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
以上片段主要要注意几点:
1、task-web-dist自身的packaging类型也是war
2、在<overlay>中配置要归并的webapp的groupId和artifactId,注意的是,该pom所在的webapp工程是主工程,会覆盖掉所有待归并工程的同名文件,包括web.xml
3、要归并的webapp,必须声明为依赖
归并后的最终war包如下:
其中的文件和.class都是由2个war包归并得到的,task-web-dist是主war包,如果多个war包中存在重名文件,则会被task-web-dist的文件覆盖,比如web.xml
- 大小: 15.8 KB
- 大小: 8.7 KB
- 大小: 17.5 KB
分享到:
相关推荐
NULL 博文链接:https://gghaomm.iteye.com/blog/2055819
前端开源库-react-overlays.zip
前端开源库-react-overlays反应叠加,用于创建强大叠加组件的实用程序
Technical Indicators and Overlays Technical Indicators and Overlays
Windows Phone(WP) Loading 加载层用户控件
在对其他扩展程序有太多不良体验之后,最初是为个人使用而创建的。 有些会在简单站点上工作,但最终会在另一个站点上失败。 大多数扩展都对所有站点使用相同的逻辑,而忽略了站点是唯一的事实。 我们的目标是在...
DOM叠加规范 是的存储库。 原始提案: 参加 阅读 查看问题中是否正在讨论您的,或者是否正在讨论您的想法。 我们将发布每两周一次的通话记录。 您也可以加入工作组... 通常,两个PR将同时合并。 请注意,与规范
文献资料安装npm install --save react-overlays笔记所有这些实用程序均已从中提取出来,以便更好地访问这些常用组件的通用实现。 包含的组件是用于创建更多抛光组件的构建块。 一切都是自带样式,CSS或其他方式。 ...
Scala 工具 gentoo 覆盖 ... 您可以安装多个 Scala 版本并使用 eselect 选择活动: $ sudo emerge eselect-scala $ sudo eselect scala list $ [1] scala-2.9.0 * $ [2] scala-2.8.1 $ sudo eselect sca
模板叠加 模板文件的Emacs 安装 梅尔帕 MELPA有售 通过el-get (push '(:name template-overlays :type git :url "git://github....用 (require 'template-overlays) (add-hook 'web-mode-hook 't
nix叠加层个人nixpkgs叠加层,添加了以下软件包:用法在用户级别,您可以通过在~/.config/nixpkgs/overlays克隆此~/.config/nixpkgs/overlays来将此覆盖与nix结合使用: mkdir -p ~ /.config/nixpkgsgit clone ...
chitecting peer-to-peer overlays called Peer-to-peer Receiver- driven Overlay (or PRO). PRO is designed for non-interactive streaming applications and its primary design goal is to max- imize ...
react-overlays - 实用程序用来创建健壮的对话框组件
// extensions / shortcuts叠加层包括:*最新的Google图片* Google地形* Microsoft必应地图*此处地图* ArcGis Topo地图*打开街道图* ANCPI *(仅罗马尼亚)图层,除非您遵守每个图层提供者的特定使用条款。...
Matlab 内置的image() 和imagesc() 不能直接允许一个图像以不同的颜色(即,不同的颜色图)覆盖在另一个图像上。 这些实用程序通过适当地缩放和扩充图像数据和活动颜色图,提供了一种基本的方法来做到这一点。 例如...
如果您的文件之一在这里,并且您想让我删除它,或者希望将其记入贷方,请。逼真的叠加层(554游戏) 编写了许多游戏的“逼真的”街机游戏叠加图。 它使您的电视看起来像在拱廊柜前一样。 它们的屏幕眩光和划痕包含...
叠加层 Girder插件,用于创建和显示图像叠加层。
增强欧洲覆盖 叠加图形包以供 直播/制作。 例子 使用之前 此捆绑包不能逐字使用。... 将step-up-europe-overlays复制到nodecg/bundles/step-up-europe-overlays并将复制到nodecg/bundles/ipl-overlay
React覆盖概要模态,弹出式窗口(将来)等演示和文档此处提供在线演示和组件参考: : 由提供支持的演示安装npm install --save @opuscapita/react-overlays 贡献者 基里尔·沃尔科维奇(Kirill Volkovich) 执照根据...
vendor_overlays