创建 Skinny WAR 包

本文介绍了一种在EAR包中优化WAR包及其依赖的方法,通过配置Maven WAR Plugin,可以实现在打包WAR时不包含lib目录,而是依赖于EAR包的lib目录下的JAR包,从而减少重复依赖。

在 EAR 中可包含多个 WAR 包,WAR 中有包含着 lib 目录,由于存放其依赖的第三方 JAR 包。如果多个 WAR 包,WAR 包与 EJB-JAR 包的依赖之间存在这重叠,便会造成浪费。如果应用较大,依赖较多,那还会造成比较严重的磁盘资源的浪费和部署时的不便。

解决这个问题的一个方法就是在打 WAR 包的时候不创建 lib 目录,而通过修改 manifest.mf 文件的 Class-Path 部分,让其依赖 EAR 包 lib 目录下的第三方 JAR 包。通过配置 Maven WAR Plugin,就可实现这个目的。具体配置如下:

<!-- lang: xml -->
<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>${version.war.plugin}</version>
    <configuration>    
        <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
    </configuration>
</plugin>

其中 <archive> 的配置其实是通过 Maven Archiver,这是一个被很多 Maven 插件使用的通用项目。更多配置请参见 Maven Archiver 的文档。

转载于:https://my.oschina.net/lifany/blog/151381

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值