Maven工程war包依赖基础war包的解决方案及坑点

一、业务场景

传统的SSM项目一般都为war包部署,多模块的项目一般都是将模块打包成jar包依赖进web工程中,但是对于作为基础项目或者分模块的web项目来说,打成war包对静态资源的访问就不太方便;这里介绍一下通过Maven WAR Plugin的解决这个问题。这对于没有上微服务的项目来说应该是个不错的解决方案,将通用的常规化的功能抽到base.war中,而其他类似项目依赖base.war作为基础项目的一个模块并对其做小部分定制化的修改即可,大大提高了同类型项目的交付周期。

二、overlay简介

Overlays(覆盖)主要用于跨多Web项目间共享公共资源。它能够在目标WAR本身覆盖除了原生WAR构件以外的所有文件,并在WEB-INF/lib目录下收集原生WAR项目的依赖。

元素包含有下列子元素:
id - overlay id。如果你不提供的话,WAR插件将自动生成一个。
groupId - 配置你想要覆盖的groupId。
artifactId – 配置你想要覆盖的构件的artifactId。
type – 配置你想要覆盖的构件类型。默认值是:war。
classifier – 如果有多个构件匹配当前的groupId/artifactId,那么你需要配置构件的classifier以明确覆盖(classifier:该元素用来帮助定义构建输出的一些附属构件)。
includes - 要包含的文件。默认情况下,所有文件都能被包含。
excludes – 要排除的文件。默认情况下,在META – INF目录是被排除在外的。
targetPath - 在webapp结构的目标相对路径,当然这只在覆盖类型为war时才有效。默认情况下,覆盖的内容都追加在webapp的根节点下。
skip – 当设置为true时,跳过本次覆盖。默认值是:false。
#三、实现方式
基础项目:base.war,具体开发项目:a.war
如果在a项目中没有对base项目种具体方法的引用,则只需要在a项目中添加下面的build节点。

<build>
    <finalName>a</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值