创建 Skinny WAR 包

不打扰是莪最后的温柔 提交于 2019-11-30 18:25:20

在 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 的文档。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!